Rename GtkGestureMultiPress to GtkGestureClick
authorMatthias Clasen <mclasen@redhat.com>
Wed, 29 May 2019 17:10:46 +0000 (17:10 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 29 May 2019 17:10:46 +0000 (17:10 +0000)
The name just made it hard for people to find the
right gesture to use.

70 files changed:
demos/gtk-demo/changedisplay.c
demos/gtk-demo/clipboard.c
demos/gtk-demo/demotaggedentry.c
demos/gtk-demo/dnd.c
demos/gtk-demo/hypertext.c
demos/gtk-demo/sliding_puzzle.c
demos/widget-factory/widget-factory.c
demos/widget-factory/widget-factory.ui
docs/reference/gtk/gtk4-docs.xml
docs/reference/gtk/gtk4-sections.txt
docs/reference/gtk/gtk4.types.in
examples/drawing.c
gtk/gtk-autocleanups.h
gtk/gtk.h
gtk/gtkaboutdialog.c
gtk/gtkappchooserwidget.c
gtk/gtkbutton.c
gtk/gtkcalendar.c
gtk/gtkcolorswatch.c
gtk/gtkemojichooser.c
gtk/gtkentry.c
gtk/gtkentrycompletion.c
gtk/gtkexpander.c
gtk/gtkfilechooserwidget.c
gtk/gtkflowbox.c
gtk/gtkfontchooserwidget.c
gtk/gtkgestureclick.c [new file with mode: 0644]
gtk/gtkgestureclick.h [new file with mode: 0644]
gtk/gtkgestureclickprivate.h [new file with mode: 0644]
gtk/gtkgesturemultipress.c [deleted file]
gtk/gtkgesturemultipress.h [deleted file]
gtk/gtkgesturemultipressprivate.h [deleted file]
gtk/gtkiconview.c
gtk/gtkiconviewprivate.h
gtk/gtkimcontextwayland.c
gtk/gtklabel.c
gtk/gtklinkbutton.c
gtk/gtklistbox.c
gtk/gtkmenu.c
gtk/gtkmenuprivate.h
gtk/gtkmenushell.c
gtk/gtkmountoperation.c
gtk/gtknotebook.c
gtk/gtkpasswordentry.c
gtk/gtkplacessidebar.c
gtk/gtkrange.c
gtk/gtksearchentry.c
gtk/gtkspinbutton.c
gtk/gtkswitch.c
gtk/gtktext.c
gtk/gtktextview.c
gtk/gtktoolbar.c
gtk/gtktreeview.c
gtk/gtkwindow.c
gtk/inspector/inspect-button.c
gtk/inspector/prop-list.c
gtk/inspector/prop-list.ui
gtk/meson.build
gtk/ui/gtkaboutdialog.ui
gtk/ui/gtkemojichooser.ui
gtk/ui/gtkfilechooserwidget.ui
gtk/ui/gtkplacesviewrow.ui
tests/testentryicons.c
tests/testgrid.c
tests/testgtk.c
tests/testiconview.c
tests/testtreeedit.c
tests/testtreepos.c
tests/testwindowdrag.c
testsuite/gtk/gestures.c

index 3b8f894371e4bca4da39dd80c2188fea881d4f44..6970e2e457f83f8b56f11c55b7aead13a2f808fc 100644 (file)
@@ -80,11 +80,11 @@ find_toplevel_at_pointer (GdkDisplay *display)
 }
 
 static void
-released_cb (GtkGestureMultiPress *gesture,
-             guint                 n_press,
-             gdouble               x,
-             gdouble               y,
-             gboolean             *clicked)
+released_cb (GtkGestureClick *gesture,
+             guint            n_press,
+             gdouble          x,
+             gdouble          y,
+             gboolean        *clicked)
 {
   *clicked = TRUE;
 }
@@ -124,7 +124,7 @@ query_for_toplevel (GdkDisplay *display,
                      GDK_SEAT_CAPABILITY_ALL_POINTING,
                      FALSE, cursor, NULL, NULL, NULL) == GDK_GRAB_SUCCESS)
     {
-      GtkGesture *gesture = gtk_gesture_multi_press_new ();
+      GtkGesture *gesture = gtk_gesture_click_new ();
       gboolean clicked = FALSE;
 
       g_signal_connect (gesture, "released",
index 6dd9f6946e161d14c41e383bf7e71aa00045ee1a..36569d8d07f7ec36f9de45b3852f25a1f5178181 100644 (file)
@@ -319,7 +319,7 @@ do_clipboard (GtkWidget *do_widget)
                         G_CALLBACK (drag_data_received), image);
 
       /* context menu on image */
-      gesture = gtk_gesture_multi_press_new ();
+      gesture = gtk_gesture_click_new ();
       gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY);
       g_signal_connect (gesture, "pressed", G_CALLBACK (pressed_cb), image);
       gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (gesture));
@@ -344,7 +344,7 @@ do_clipboard (GtkWidget *do_widget)
                         G_CALLBACK (drag_data_received), image);
 
       /* context menu on image */
-      gesture = gtk_gesture_multi_press_new ();
+      gesture = gtk_gesture_click_new ();
       gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY);
       g_signal_connect (gesture, "pressed", G_CALLBACK (pressed_cb), image);
       gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (gesture));
index fe7c02b58af8f09c71f0690d89516428c80497bc..f74ee774e4f7398630218b74789abfa32e5469b9 100644 (file)
@@ -250,11 +250,11 @@ static guint signals[LAST_SIGNAL] = { 0, };
 G_DEFINE_TYPE (DemoTaggedEntryTag, demo_tagged_entry_tag, GTK_TYPE_WIDGET)
 
 static void
-on_released (GtkGestureMultiPress *gesture,
+on_released (GtkGestureClick      *gesture,
              int                   n_press,
              double                x,
              double                y,
-             DemoTaggedEntryTag          *tag)
+             DemoTaggedEntryTag   *tag)
 {
   g_signal_emit (tag, signals[SIGNAL_CLICKED], 0);
 }
@@ -270,7 +270,7 @@ demo_tagged_entry_tag_init (DemoTaggedEntryTag *tag)
   tag->label = gtk_label_new ("");
   gtk_container_add (GTK_CONTAINER (tag->box), tag->label);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "released", G_CALLBACK (on_released), tag);
   gtk_widget_add_controller (GTK_WIDGET (tag), GTK_EVENT_CONTROLLER (gesture));
 
index 3e862e8175199d3cc63d23e482a05a4218d208e5..b211bcede14a52794d0e33e536cffbbdf4afefa5 100644 (file)
@@ -356,7 +356,7 @@ do_dnd (GtkWidget *do_widget)
       gtk_widget_set_hexpand (fixed, TRUE);
       gtk_widget_set_vexpand (fixed, TRUE);
 
-      multipress = gtk_gesture_multi_press_new ();
+      multipress = gtk_gesture_click_new ();
       gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (multipress), 0);
       g_signal_connect (multipress, "pressed", G_CALLBACK (pressed_cb), NULL);
       g_signal_connect (multipress, "released", G_CALLBACK (released_cb), NULL);
index a34a85873b3040289d3bc3678af034a21cef7d36..b053ed581f6c1fa71d29382e9d1feba8300131db 100644 (file)
@@ -136,11 +136,11 @@ static void set_cursor_if_appropriate (GtkTextView *text_view,
                                        gint         y);
 
 static void
-released_cb (GtkGestureMultiPress *gesture,
-             guint                 n_press,
-             gdouble               x,
-             gdouble               y,
-             GtkWidget            *text_view)
+released_cb (GtkGestureClick *gesture,
+             guint            n_press,
+             gdouble          x,
+             gdouble          y,
+             GtkWidget       *text_view)
 {
   GtkTextIter start, end, iter;
   GtkTextBuffer *buffer;
@@ -247,7 +247,7 @@ do_hypertext (GtkWidget *do_widget)
       g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), view);
       gtk_widget_add_controller (view, controller);
 
-      controller = GTK_EVENT_CONTROLLER (gtk_gesture_multi_press_new ());
+      controller = GTK_EVENT_CONTROLLER (gtk_gesture_click_new ());
       g_signal_connect (controller, "released",
                         G_CALLBACK (released_cb), view);
       gtk_widget_add_controller (view, controller);
index 3bb8ffbebe72853d04080d181f371b656842eeb4..cb5ffcf70941818e8cc1d255891c76e221a1977b 100644 (file)
@@ -218,11 +218,11 @@ puzzle_key_pressed (GtkEventControllerKey *controller,
 }
 
 static void
-puzzle_button_pressed (GtkGestureMultiPress *gesture,
-                       int                   n_press,
-                       double                x,
-                       double                y,
-                       GtkWidget            *grid)
+puzzle_button_pressed (GtkGestureClick *gesture,
+                       int              n_press,
+                       double           x,
+                       double           y,
+                       GtkWidget       *grid)
 {
   GtkWidget *child;
   int l, t, i;
@@ -302,7 +302,7 @@ start_puzzle (GdkPaintable *puzzle)
                     grid);
   gtk_widget_add_controller (GTK_WIDGET (grid), controller);
 
-  controller = GTK_EVENT_CONTROLLER (gtk_gesture_multi_press_new ());
+  controller = GTK_EVENT_CONTROLLER (gtk_gesture_click_new ());
   g_signal_connect (controller, "pressed",
                     G_CALLBACK (puzzle_button_pressed),
                     grid);
index f2878a0613b07d7de418357f6451ef47510b04f8..1f97666a795d794a10d5f8586fd06260bba23070 100644 (file)
@@ -1284,11 +1284,11 @@ textbuffer_notify_selection (GObject *object, GParamSpec *pspec, GtkWidget *butt
 }
 
 static gboolean
-osd_frame_pressed (GtkGestureMultiPress *gesture,
-                   int                   press,
-                   double                x,
-                   double                y,
-                   gpointer              data)
+osd_frame_pressed (GtkGestureClick *gesture,
+                   int              press,
+                   double           x,
+                   double           y,
+                   gpointer         data)
 {
   GtkWidget *frame = data;
   GtkWidget *osd;
index 3dc1b280b1d9c5866744074fcbfff65f0905ab42..fbb0ec8ff0fd7ae2c08fc01665cad4950fc72999 100644 (file)
@@ -2962,7 +2962,7 @@ microphone-sensitivity-medium-symbolic</property>
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="GtkGestureMultiPress">
+                                  <object class="GtkGestureClick">
                                     <signal name="pressed" handler="osd_frame_pressed" object="osd_frame" swapped="no"/>
                                   </object>
                                 </child>
index 26f6f028e506756bfc86f25c11f3851712f938ed..bd04301299676480d52d56f7a6869e12de65a1b1 100644 (file)
       <xi:include href="xml/gtkgesturesingle.xml" />
       <xi:include href="xml/gtkgesturedrag.xml" />
       <xi:include href="xml/gtkgesturelongpress.xml" />
-      <xi:include href="xml/gtkgesturemultipress.xml" />
+      <xi:include href="xml/gtkgestureclick.xml" />
       <xi:include href="xml/gtkgesturepan.xml" />
       <xi:include href="xml/gtkgestureswipe.xml" />
       <xi:include href="xml/gtkgesturerotate.xml" />
index bb84c922cdd197aeee300fc5979637bc4cd7dc6e..1d58087f49f1128520bfc6d282030aaa20eb3abf 100644 (file)
@@ -6722,23 +6722,23 @@ gtk_gesture_long_press_get_type
 </SECTION>
 
 <SECTION>
-<FILE>gtkgesturemultipress</FILE>
-<TITLE>GtkGestureMultiPress</TITLE>
-GtkGestureMultiPress
-gtk_gesture_multi_press_new
-gtk_gesture_multi_press_set_area
-gtk_gesture_multi_press_get_area
+<FILE>gtkgestureclick</FILE>
+<TITLE>GtkGestureClick</TITLE>
+GtkGestureClick
+gtk_gesture_click_new
+gtk_gesture_click_set_area
+gtk_gesture_click_get_area
 
 <SUBSECTION Standard>
-GTK_TYPE_GESTURE_MULTI_PRESS
-GTK_GESTURE_MULTI_PRESS
-GTK_GESTURE_MULTI_PRESS_CLASS
-GTK_IS_GESTURE_MULTI_PRESS
-GTK_IS_GESTURE_MULTI_PRESS_CLASS
-GTK_GESTURE_MULTI_PRESS_GET_CLASS
+GTK_TYPE_GESTURE_CLICK
+GTK_GESTURE_CLICK
+GTK_GESTURE_CLICK_CLASS
+GTK_IS_GESTURE_CLICK
+GTK_IS_GESTURE_CLICK_CLASS
+GTK_GESTURE_CLICK_GET_CLASS
 
 <SUBSECTION Private>
-gtk_gesture_multi_press_get_type
+gtk_gesture_click_get_type
 </SECTION>
 
 <SECTION>
index 6a3e14e9eca4b78736da4453b56523a4ffd24e67..52f682d10408a7ae53a79d6bcba618f00f1ba3fc 100644 (file)
@@ -75,9 +75,9 @@ gtk_font_chooser_dialog_get_type
 gtk_font_chooser_widget_get_type
 gtk_frame_get_type
 gtk_gesture_get_type
+gtk_gesture_click_get_type
 gtk_gesture_drag_get_type
 gtk_gesture_long_press_get_type
-gtk_gesture_multi_press_get_type
 gtk_gesture_pan_get_type
 gtk_gesture_rotate_get_type
 gtk_gesture_single_get_type
index da3eeabe73ebe8002b0cb8521e74a3cf4827af6e..f5315aebb707b2171d021c47e142c4895ff587fd 100644 (file)
@@ -110,11 +110,11 @@ drag_end (GtkGestureDrag *gesture,
 }
 
 static void
-pressed (GtkGestureMultiPress *gesture,
-         int                   n_press,
-         double                x,
-         double                y,
-         GtkWidget            *area)
+pressed (GtkGestureClick *gesture,
+         int              n_press,
+         double           x,
+         double           y,
+         GtkWidget       *area)
 {
   clear_surface ();
   gtk_widget_queue_draw (area);
@@ -164,7 +164,7 @@ activate (GtkApplication *app,
   g_signal_connect (drag, "drag-update", G_CALLBACK (drag_update), drawing_area);
   g_signal_connect (drag, "drag-end", G_CALLBACK (drag_end), drawing_area);
 
-  press = gtk_gesture_multi_press_new ();
+  press = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (press), GDK_BUTTON_SECONDARY);
   gtk_widget_add_controller (drawing_area, GTK_EVENT_CONTROLLER (press));
 
index edd4664b4001f029b6daf882be1bc6d312102e0d..2e11f477d4d9f7780bf46849a1b2d8dd365e8cb2 100644 (file)
@@ -85,7 +85,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGLArea, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGesture, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGestureDrag, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGestureLongPress, g_object_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGestureMultiPress, g_object_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGestureClick, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGesturePan, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGestureRotate, g_object_unref)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkGestureSingle, g_object_unref)
index 651e8d66148df46c80ffaccb0443b944f762eeb1..2f6e7e59be211f7e3d0f9781192cc49a79474191 100644 (file)
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
 #include <gtk/gtkfontchooserwidget.h>
 #include <gtk/gtkframe.h>
 #include <gtk/gtkgesture.h>
+#include <gtk/gtkgestureclick.h>
 #include <gtk/gtkgesturedrag.h>
 #include <gtk/gtkgesturelongpress.h>
-#include <gtk/gtkgesturemultipress.h>
 #include <gtk/gtkgesturepan.h>
 #include <gtk/gtkgesturerotate.h>
 #include <gtk/gtkgesturesingle.h>
index 29370a3fb99fe4de70114df53772ae5e89885386..4b38d343f490f337dcb8df86214259e3f550972b 100644 (file)
@@ -60,7 +60,7 @@
 #include "gtkdialogprivate.h"
 #include "gtkeventcontrollermotion.h"
 #include "gtkeventcontrollerkey.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 
 
 /**
@@ -260,7 +260,7 @@ static gboolean             text_view_key_pressed           (GtkEventController
                                                              guint               keycode,
                                                              GdkModifierType     state,
                                                             GtkAboutDialog     *about);
-static void                 text_view_released              (GtkGestureMultiPress *press,
+static void                 text_view_released              (GtkGestureClick *press,
                                                              int                   n,
                                                              double                x,
                                                              double                y,
@@ -1938,7 +1938,7 @@ text_view_key_pressed (GtkEventController *controller,
 }
 
 static void
-text_view_released (GtkGestureMultiPress *gesture,
+text_view_released (GtkGestureClick *gesture,
                     int                   n_press,
                     double                x,
                     double                y,
index 16815ed1db88b6074a10dabc2477d9eef9f344bb..1fc75e7f1f1c5ce6ac9baff2c6a8778f680b8c22 100644 (file)
@@ -37,7 +37,7 @@
 #include "gtkorientable.h"
 #include "gtkscrolledwindow.h"
 #include "gtklabel.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 
 #include <string.h>
 #include <glib/gi18n-lib.h>
@@ -1213,7 +1213,7 @@ gtk_app_chooser_widget_init (GtkAppChooserWidget *self)
   g_signal_connect (priv->monitor, "changed",
                    G_CALLBACK (app_info_changed), self);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY);
   g_signal_connect (gesture, "pressed",
                     G_CALLBACK (gtk_app_chooser_row_pressed_cb), self);
index 402ebdfa28d17f7a41afcdac90cd859db0bdc21d..3b701d9959ed7483d97745cb4839fde1e792469a 100644 (file)
@@ -58,7 +58,7 @@
 #include "gtkactionhelperprivate.h"
 #include "gtkcheckbutton.h"
 #include "gtkcontainerprivate.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkeventcontrollerkey.h"
 #include "gtkimage.h"
 #include "gtkintl.h"
@@ -287,11 +287,11 @@ gtk_button_class_init (GtkButtonClass *klass)
 }
 
 static void
-multipress_pressed_cb (GtkGestureMultiPress *gesture,
-                       guint                 n_press,
-                       gdouble               x,
-                       gdouble               y,
-                       GtkWidget            *widget)
+click_pressed_cb (GtkGestureClick *gesture,
+                  guint            n_press,
+                  gdouble          x,
+                  gdouble          y,
+                  GtkWidget       *widget)
 {
   GtkButton *button = GTK_BUTTON (widget);
   GtkButtonPrivate *priv = gtk_button_get_instance_private (button);
@@ -335,11 +335,11 @@ touch_release_in_button (GtkButton *button)
 }
 
 static void
-multipress_released_cb (GtkGestureMultiPress *gesture,
-                        guint                 n_press,
-                        gdouble               x,
-                        gdouble               y,
-                        GtkWidget            *widget)
+click_released_cb (GtkGestureClick *gesture,
+                   guint            n_press,
+                   gdouble          x,
+                   gdouble          y,
+                   GtkWidget       *widget)
 {
   GtkButton *button = GTK_BUTTON (widget);
   GtkButtonPrivate *priv = gtk_button_get_instance_private (button);
@@ -357,9 +357,9 @@ multipress_released_cb (GtkGestureMultiPress *gesture,
 }
 
 static void
-multipress_gesture_cancel_cb (GtkGesture       *gesture,
-                              GdkEventSequence *sequence,
-                              GtkButton        *button)
+click_gesture_cancel_cb (GtkGesture       *gesture,
+                         GdkEventSequence *sequence,
+                         GtkButton        *button)
 {
   gtk_button_do_release (button, FALSE);
 }
@@ -419,13 +419,13 @@ gtk_button_init (GtkButton *button)
   priv->use_underline = FALSE;
   priv->child_type = WIDGET_CHILD;
 
-  priv->gesture = gtk_gesture_multi_press_new ();
+  priv->gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->gesture), FALSE);
   gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (priv->gesture), TRUE);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->gesture), GDK_BUTTON_PRIMARY);
-  g_signal_connect (priv->gesture, "pressed", G_CALLBACK (multipress_pressed_cb), button);
-  g_signal_connect (priv->gesture, "released", G_CALLBACK (multipress_released_cb), button);
-  g_signal_connect (priv->gesture, "cancel", G_CALLBACK (multipress_gesture_cancel_cb), button);
+  g_signal_connect (priv->gesture, "pressed", G_CALLBACK (click_pressed_cb), button);
+  g_signal_connect (priv->gesture, "released", G_CALLBACK (click_released_cb), button);
+  g_signal_connect (priv->gesture, "cancel", G_CALLBACK (click_gesture_cancel_cb), button);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->gesture), GTK_PHASE_CAPTURE);
   gtk_widget_add_controller (GTK_WIDGET (button), GTK_EVENT_CONTROLLER (priv->gesture));
 
index ffabd022bc3cb07cd378aa0b03b5ebe5e64c2a4d..0b45d241f295e75cce7aba91d76504e2cbd65a47 100644 (file)
@@ -83,7 +83,7 @@
 #include "gtksnapshot.h"
 #include "gtkstylecontextprivate.h"
 #include "gtkwidgetprivate.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturedrag.h"
 #include "gtkeventcontrollerscroll.h"
 #include "gtkeventcontrollerkey.h"
@@ -290,18 +290,18 @@ static void     gtk_calendar_size_allocate  (GtkWidget      *widget,
                                              int             width,
                                              int             height,
                                              int             baseline);
-static void     gtk_calendar_snapshot       (GtkWidget        *widget,
-                                             GtkSnapshot      *snapshot);
-static void     gtk_calendar_button_press   (GtkGestureMultiPress *gesture,
-                                             int                   n_press,
-                                             double                x,
-                                             double                y,
-                                             gpointer              user_data);
-static void     gtk_calendar_button_release (GtkGestureMultiPress *gesture,
-                                             int                   n_press,
-                                             double                x,
-                                             double                y,
-                                             gpointer              user_data);
+static void     gtk_calendar_snapshot       (GtkWidget      *widget,
+                                             GtkSnapshot    *snapshot);
+static void     gtk_calendar_button_press   (GtkGestureClick *gesture,
+                                             int              n_press,
+                                             double           x,
+                                             double           y,
+                                             gpointer         user_data);
+static void     gtk_calendar_button_release (GtkGestureClick *gesture,
+                                             int              n_press,
+                                             double           x,
+                                             double           y,
+                                             gpointer         user_data);
 static void     gtk_calendar_drag_begin     (GtkGestureDrag   *gesture,
                                              double            x,
                                              double            y,
@@ -681,7 +681,7 @@ gtk_calendar_init (GtkCalendar *calendar)
   gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (calendar)),
                                GTK_STYLE_CLASS_VIEW);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed", G_CALLBACK (gtk_calendar_button_press), calendar);
   g_signal_connect (gesture, "released", G_CALLBACK (gtk_calendar_button_release), calendar);
   gtk_widget_add_controller (GTK_WIDGET (calendar), GTK_EVENT_CONTROLLER (gesture));
@@ -2602,11 +2602,11 @@ calendar_main_button_press (GtkCalendar *calendar,
 
 
 static void
-gtk_calendar_button_press (GtkGestureMultiPress *gesture,
-                           int                   n_press,
-                           double                x,
-                           double                y,
-                           gpointer              user_data)
+gtk_calendar_button_press (GtkGestureClick *gesture,
+                           int              n_press,
+                           double           x,
+                           double           y,
+                           gpointer         user_data)
 {
   GtkCalendar *calendar = user_data;
   GtkWidget *widget = GTK_WIDGET (calendar);
@@ -2639,11 +2639,11 @@ gtk_calendar_button_press (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_calendar_button_release (GtkGestureMultiPress *gesture,
-                             int                   n_press,
-                             double                x,
-                             double                y,
-                             gpointer              user_data)
+gtk_calendar_button_release (GtkGestureClick *gesture,
+                             int              n_press,
+                             double           x,
+                             double           y,
+                             gpointer         user_data)
 {
   GtkCalendar *calendar = user_data;
   GtkCalendarPrivate *priv = gtk_calendar_get_instance_private (calendar);
index dd3b780fa3e832c148035b548d27700008718307..a5d3f524996a30d03c247b27aa3cb0b51f35d245 100644 (file)
@@ -26,7 +26,7 @@
 #include "gtkdragdest.h"
 #include "gtkdragsource.h"
 #include "gtkgesturelongpress.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturesingle.h"
 #include "gtkicontheme.h"
 #include "gtkimage.h"
@@ -324,11 +324,11 @@ hold_action (GtkGestureLongPress *gesture,
 }
 
 static void
-tap_action (GtkGestureMultiPress *gesture,
-            gint                  n_press,
-            gdouble               x,
-            gdouble               y,
-            GtkColorSwatch       *swatch)
+tap_action (GtkGestureClick *gesture,
+            gint             n_press,
+            gdouble          x,
+            gdouble          y,
+            GtkColorSwatch  *swatch)
 {
   GtkColorSwatchPrivate *priv = gtk_color_swatch_get_instance_private (swatch);
   guint button;
@@ -580,7 +580,7 @@ gtk_color_swatch_init (GtkColorSwatch *swatch)
                     G_CALLBACK (hold_action), swatch);
   gtk_widget_add_controller (GTK_WIDGET (swatch), GTK_EVENT_CONTROLLER (gesture));
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   g_signal_connect (gesture, "pressed",
                     G_CALLBACK (tap_action), swatch);
index 10eee9ad787ad7176152986da7a6135fee430021..ab52915b847178717ec7a90c09b9a30365bcf3ca 100644 (file)
@@ -28,7 +28,6 @@
 #include "gtkstack.h"
 #include "gtklabel.h"
 #include "gtkgesturelongpress.h"
-#include "gtkgesturemultipress.h"
 #include "gtkpopover.h"
 #include "gtkscrolledwindow.h"
 #include "gtkintl.h"
index 94b97e952c313f18ac053bd833c0fd90984bc39e..aa447f573930ad29bd13486e9a1f9f44923e5192 100644 (file)
@@ -45,7 +45,6 @@
 #include "gtkemojicompletion.h"
 #include "gtkentrybuffer.h"
 #include "gtkgesturedrag.h"
-#include "gtkgesturemultipress.h"
 #include "gtkimageprivate.h"
 #include "gtkimcontextsimple.h"
 #include "gtkintl.h"
@@ -73,6 +72,7 @@
 #include "gtkwidgetprivate.h"
 #include "gtkwindow.h"
 #include "gtknative.h"
+#include "gtkgestureclick.h"
 
 #include "a11y/gtkentryaccessible.h"
 
@@ -1407,7 +1407,7 @@ get_icon_position_from_controller (GtkEntry           *entry,
 }
 
 static void
-icon_pressed_cb (GtkGestureMultiPress *gesture,
+icon_pressed_cb (GtkGestureClick *gesture,
                  gint                  n_press,
                  gdouble               x,
                  gdouble               y,
@@ -1427,11 +1427,11 @@ icon_pressed_cb (GtkGestureMultiPress *gesture,
 }
 
 static void
-icon_released_cb (GtkGestureMultiPress *gesture,
-                  gint                  n_press,
-                  gdouble               x,
-                  gdouble               y,
-                  GtkEntry             *entry)
+icon_released_cb (GtkGestureClick *gesture,
+                  gint             n_press,
+                  gdouble          x,
+                  gdouble          y,
+                  GtkEntry        *entry)
 {
   GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry);
   GtkEntryIconPosition pos;
@@ -1497,11 +1497,9 @@ construct_icon_info (GtkWidget            *widget,
   update_icon_style (widget, icon_pos);
   update_node_ordering (entry);
 
-  press = gtk_gesture_multi_press_new ();
-  g_signal_connect (press, "pressed",
-                    G_CALLBACK (icon_pressed_cb), entry);
-  g_signal_connect (press, "released",
-                    G_CALLBACK (icon_released_cb), entry);
+  press = gtk_gesture_click_new ();
+  g_signal_connect (press, "pressed", G_CALLBACK (icon_pressed_cb), entry);
+  g_signal_connect (press, "released", G_CALLBACK (icon_released_cb), entry);
   gtk_widget_add_controller (icon_info->widget, GTK_EVENT_CONTROLLER (press));
 
   drag = gtk_gesture_drag_new ();
index 74572071fe242f27b8a9fc08cd6ffa8c043bc815..de68a66e4372a3243aefd6db2e8e199ad1f63356 100644 (file)
@@ -83,8 +83,8 @@
 #include "gtkentry.h"
 #include "gtkmain.h"
 #include "gtkmarshalers.h"
-#include "gtkgesturemultipress.h"
 #include "gtkeventcontrollerkey.h"
+#include "gtkgestureclick.h"
 
 #include "gtkprivate.h"
 #include "gtkwindowprivate.h"
@@ -594,7 +594,7 @@ gtk_entry_completion_constructed (GObject *object)
                     G_CALLBACK (propagate_to_entry), completion);
   gtk_widget_add_controller (priv->popup_window, controller);
 
-  controller = GTK_EVENT_CONTROLLER (gtk_gesture_multi_press_new ());
+  controller = GTK_EVENT_CONTROLLER (gtk_gesture_click_new ());
   g_signal_connect_swapped (controller, "released",
                             G_CALLBACK (_gtk_entry_completion_popdown),
                             completion);
index 59c08c63306ed76cd772de295ce1109850900718..28cd5fe9eea14d3b30a9836de4898a015e9a8b1a 100644 (file)
 #include "gtkdnd.h"
 #include "gtkdragdest.h"
 #include "gtkiconprivate.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturesingle.h"
 #include "gtkintl.h"
 #include "gtklabel.h"
@@ -226,11 +226,11 @@ static void gtk_expander_measure (GtkWidget      *widget,
                                   int            *natural_baseline);
 
 /* Gestures */
-static void     gesture_multipress_released_cb (GtkGestureMultiPress *gesture,
-                                                gint                  n_press,
-                                                gdouble               x,
-                                                gdouble               y,
-                                                GtkExpander          *expander);
+static void     gesture_click_released_cb (GtkGestureClick *gesture,
+                                           gint             n_press,
+                                           gdouble          x,
+                                           gdouble          y,
+                                           GtkExpander     *expander);
 
 G_DEFINE_TYPE_WITH_CODE (GtkExpander, gtk_expander, GTK_TYPE_CONTAINER,
                          G_ADD_PRIVATE (GtkExpander)
@@ -378,13 +378,13 @@ gtk_expander_init (GtkExpander *expander)
   gtk_drag_dest_set (GTK_WIDGET (expander), 0, NULL, 0);
   gtk_drag_dest_set_track_motion (GTK_WIDGET (expander), TRUE);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture),
                                  GDK_BUTTON_PRIMARY);
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture),
                                      FALSE);
   g_signal_connect (gesture, "released",
-                    G_CALLBACK (gesture_multipress_released_cb), expander);
+                    G_CALLBACK (gesture_click_released_cb), expander);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
                                               GTK_PHASE_BUBBLE);
   gtk_widget_add_controller (GTK_WIDGET (priv->title_widget), GTK_EVENT_CONTROLLER (gesture));
@@ -522,11 +522,11 @@ gtk_expander_size_allocate (GtkWidget *widget,
 }
 
 static void
-gesture_multipress_released_cb (GtkGestureMultiPress *gesture,
-                                gint                  n_press,
-                                gdouble               x,
-                                gdouble               y,
-                                GtkExpander          *expander)
+gesture_click_released_cb (GtkGestureClick *gesture,
+                           gint             n_press,
+                           gdouble          x,
+                           gdouble          y,
+                           GtkExpander     *expander)
 {
   gtk_widget_activate (GTK_WIDGET (expander));
 }
index 1e357596fe53456350cb69fd5e1631f366283dda..bb68a75fb55b930576544489e93f05fd172c8029 100644 (file)
@@ -77,7 +77,7 @@
 #include "gtkseparator.h"
 #include "gtkmodelbutton.h"
 #include "gtkgesturelongpress.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkeventcontrollerkey.h"
 #include "gtkdebug.h"
 #include "gtkfilechoosererrorstackprivate.h"
@@ -2303,11 +2303,11 @@ file_list_show_popover_in_idle (gpointer data)
 }
 
 static void
-multi_press_cb (GtkGesture           *gesture,
-                int                   n_press,
-                double                x,
-                double                y,
-                GtkFileChooserWidget *impl)
+click_cb (GtkGesture           *gesture,
+          int                   n_press,
+          double                x,
+          double                y,
+          GtkFileChooserWidget *impl)
 {
   PopoverData *pd;
 
@@ -8336,7 +8336,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
   gtk_widget_class_bind_template_callback (widget_class, rename_file_name_changed);
   gtk_widget_class_bind_template_callback (widget_class, rename_file_rename_clicked);
   gtk_widget_class_bind_template_callback (widget_class, rename_file_end);
-  gtk_widget_class_bind_template_callback (widget_class, multi_press_cb);
+  gtk_widget_class_bind_template_callback (widget_class, click_cb);
   gtk_widget_class_bind_template_callback (widget_class, long_press_cb);
   gtk_widget_class_bind_template_callback (widget_class, key_press_cb);
   gtk_widget_class_bind_template_callback (widget_class, widget_key_press_cb);
index afbed23910e08e8e6006503d79997db64102a154..dedb6acefacc027a7b265e24f50b05748fa0a0ce 100644 (file)
@@ -82,7 +82,7 @@
 #include "gtkcontainerprivate.h"
 #include "gtkcssnodeprivate.h"
 #include "gtkgesturedrag.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkintl.h"
 #include "gtkmain.h"
 #include "gtkmarshalers.h"
@@ -2638,11 +2638,11 @@ gtk_flow_box_drag_gesture_update (GtkGestureDrag *gesture,
 }
 
 static void
-gtk_flow_box_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
-                                         guint                 n_press,
-                                         gdouble               x,
-                                         gdouble               y,
-                                         GtkFlowBox           *box)
+gtk_flow_box_click_gesture_pressed (GtkGestureClick *gesture,
+                                    guint            n_press,
+                                    gdouble          x,
+                                    gdouble          y,
+                                    GtkFlowBox      *box)
 {
   GtkFlowBoxPrivate *priv = BOX_PRIV (box);
   GtkFlowBoxChild *child;
@@ -2668,12 +2668,12 @@ gtk_flow_box_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_flow_box_multipress_unpaired_release (GtkGestureMultiPress *gesture,
-                                          gdouble               x,
-                                          gdouble               y,
-                                          guint                 button,
-                                          GdkEventSequence     *sequence,
-                                          GtkFlowBox           *box)
+gtk_flow_box_click_unpaired_release (GtkGestureClick  *gesture,
+                                     gdouble           x,
+                                     gdouble           y,
+                                     guint             button,
+                                     GdkEventSequence *sequence,
+                                     GtkFlowBox       *box)
 {
   GtkFlowBoxPrivate *priv = BOX_PRIV (box);
   GtkFlowBoxChild *child;
@@ -2688,11 +2688,11 @@ gtk_flow_box_multipress_unpaired_release (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_flow_box_multipress_gesture_released (GtkGestureMultiPress *gesture,
-                                          guint                 n_press,
-                                          gdouble               x,
-                                          gdouble               y,
-                                          GtkFlowBox           *box)
+gtk_flow_box_click_gesture_released (GtkGestureClick *gesture,
+                                     guint            n_press,
+                                     gdouble          x,
+                                     gdouble          y,
+                                     GtkFlowBox      *box)
 {
   GtkFlowBoxPrivate *priv = BOX_PRIV (box);
 
@@ -2732,8 +2732,8 @@ gtk_flow_box_multipress_gesture_released (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_flow_box_multipress_gesture_stopped (GtkGestureMultiPress *gesture,
-                                         GtkFlowBox           *box)
+gtk_flow_box_click_gesture_stopped (GtkGestureClick *gesture,
+                                    GtkFlowBox      *box)
 {
   GtkFlowBoxPrivate *priv = BOX_PRIV (box);
 
@@ -3728,7 +3728,7 @@ gtk_flow_box_init (GtkFlowBox *box)
 
   priv->children = g_sequence_new (NULL);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture),
                                      FALSE);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture),
@@ -3736,13 +3736,13 @@ gtk_flow_box_init (GtkFlowBox *box)
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
                                               GTK_PHASE_BUBBLE);
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (gtk_flow_box_multipress_gesture_pressed), box);
+                    G_CALLBACK (gtk_flow_box_click_gesture_pressed), box);
   g_signal_connect (gesture, "released",
-                    G_CALLBACK (gtk_flow_box_multipress_gesture_released), box);
+                    G_CALLBACK (gtk_flow_box_click_gesture_released), box);
   g_signal_connect (gesture, "stopped",
-                    G_CALLBACK (gtk_flow_box_multipress_gesture_stopped), box);
+                    G_CALLBACK (gtk_flow_box_click_gesture_stopped), box);
   g_signal_connect (gesture, "unpaired-release",
-                    G_CALLBACK (gtk_flow_box_multipress_unpaired_release), box);
+                    G_CALLBACK (gtk_flow_box_click_unpaired_release), box);
   gtk_widget_add_controller (GTK_WIDGET (box), GTK_EVENT_CONTROLLER (gesture));
 
   priv->drag_gesture = gtk_gesture_drag_new ();
index cdf46c80347fa578ad54367611aa6e292f0bc79b..8c93be4e0c6a663fbb4b43d48ee8726077e5c456 100644 (file)
@@ -53,7 +53,7 @@
 #include "gtkdialog.h"
 #include "gtkradiobutton.h"
 #include "gtkcombobox.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkeventcontrollerscroll.h"
 #include "gtkroot.h"
 
@@ -2054,7 +2054,7 @@ add_check_group (GtkFontChooserWidget *fontchooser,
       g_signal_connect_swapped (feat, "notify::inconsistent", G_CALLBACK (update_font_features), fontchooser);
       g_signal_connect (feat, "clicked", G_CALLBACK (feat_clicked), NULL);
 
-      gesture = gtk_gesture_multi_press_new ();
+      gesture = gtk_gesture_click_new ();
       gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY);
       g_signal_connect (gesture, "pressed", G_CALLBACK (feat_pressed), feat);
       gtk_widget_add_controller (feat, GTK_EVENT_CONTROLLER (gesture));
diff --git a/gtk/gtkgestureclick.c b/gtk/gtkgestureclick.c
new file mode 100644 (file)
index 0000000..4fa7131
--- /dev/null
@@ -0,0 +1,519 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author(s): Carlos Garnacho <carlosg@gnome.org>
+ */
+
+/**
+ * SECTION:gtkgestureclick
+ * @Short_description: Multipress gesture
+ * @Title: GtkGestureClick
+ *
+ * #GtkGestureClick is a #GtkGesture implementation able to recognize
+ * multiple clicks on a nearby zone, which can be listened for through
+ * the #GtkGestureClick::pressed signal. Whenever time or distance
+ * between clicks exceed the GTK+ defaults, #GtkGestureClick::stopped
+ * is emitted, and the click counter is reset.
+ *
+ * Callers may also restrict the area that is considered valid for a >1
+ * touch/button press through gtk_gesture_click_set_area(), so any
+ * click happening outside that area is considered to be a first click
+ * of its own.
+ */
+
+#include "config.h"
+#include "gtkgestureprivate.h"
+#include "gtkgestureclick.h"
+#include "gtkgestureclickprivate.h"
+#include "gtkprivate.h"
+#include "gtkintl.h"
+
+typedef struct _GtkGestureClickPrivate GtkGestureClickPrivate;
+
+struct _GtkGestureClickPrivate
+{
+  GdkRectangle rect;
+  GdkDevice *current_device;
+  gdouble initial_press_x;
+  gdouble initial_press_y;
+  guint double_click_timeout_id;
+  guint n_presses;
+  guint n_release;
+  guint current_button;
+  guint rect_is_set : 1;
+};
+
+enum {
+  PRESSED,
+  RELEASED,
+  STOPPED,
+  UNPAIRED_RELEASE,
+  LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
+G_DEFINE_TYPE_WITH_PRIVATE (GtkGestureClick, gtk_gesture_click, GTK_TYPE_GESTURE_SINGLE)
+
+static void
+gtk_gesture_click_finalize (GObject *object)
+{
+  GtkGestureClickPrivate *priv;
+  GtkGestureClick *gesture;
+
+  gesture = GTK_GESTURE_CLICK (object);
+  priv = gtk_gesture_click_get_instance_private (gesture);
+
+  if (priv->double_click_timeout_id)
+    {
+      g_source_remove (priv->double_click_timeout_id);
+      priv->double_click_timeout_id = 0;
+    }
+
+  G_OBJECT_CLASS (gtk_gesture_click_parent_class)->finalize (object);
+}
+
+static gboolean
+gtk_gesture_click_check (GtkGesture *gesture)
+{
+  GtkGestureClick *click;
+  GtkGestureClickPrivate *priv;
+  GList *sequences;
+  gboolean active;
+
+  click = GTK_GESTURE_CLICK (gesture);
+  priv = gtk_gesture_click_get_instance_private (click);
+  sequences = gtk_gesture_get_sequences (gesture);
+
+  active = g_list_length (sequences) == 1 || priv->double_click_timeout_id;
+  g_list_free (sequences);
+
+  return active;
+}
+
+static void
+_gtk_gesture_click_stop (GtkGestureClick *gesture)
+{
+  GtkGestureClickPrivate *priv;
+
+  priv = gtk_gesture_click_get_instance_private (gesture);
+
+  if (priv->n_presses == 0)
+    return;
+
+  priv->current_device = NULL;
+  priv->current_button = 0;
+  priv->n_presses = 0;
+  g_signal_emit (gesture, signals[STOPPED], 0);
+  _gtk_gesture_check (GTK_GESTURE (gesture));
+}
+
+static gboolean
+_double_click_timeout_cb (gpointer user_data)
+{
+  GtkGestureClick *gesture = user_data;
+  GtkGestureClickPrivate *priv;
+
+  priv = gtk_gesture_click_get_instance_private (gesture);
+  priv->double_click_timeout_id = 0;
+  _gtk_gesture_click_stop (gesture);
+
+  return FALSE;
+}
+
+static void
+_gtk_gesture_click_update_timeout (GtkGestureClick *gesture)
+{
+  GtkGestureClickPrivate *priv;
+  guint double_click_time;
+  GtkSettings *settings;
+  GtkWidget *widget;
+
+  priv = gtk_gesture_click_get_instance_private (gesture);
+
+  if (priv->double_click_timeout_id)
+    g_source_remove (priv->double_click_timeout_id);
+
+  widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture));
+  settings = gtk_widget_get_settings (widget);
+  g_object_get (settings, "gtk-double-click-time", &double_click_time, NULL);
+
+  priv->double_click_timeout_id = g_timeout_add (double_click_time, _double_click_timeout_cb, gesture);
+  g_source_set_name_by_id (priv->double_click_timeout_id, "[gtk] _double_click_timeout_cb");
+}
+
+static gboolean
+_gtk_gesture_click_check_within_threshold (GtkGestureClick *gesture,
+                                           double           x,
+                                           double           y)
+{
+  GtkGestureClickPrivate *priv;
+  guint double_click_distance;
+  GtkSettings *settings;
+  GtkWidget *widget;
+
+  priv = gtk_gesture_click_get_instance_private (gesture);
+
+  if (priv->n_presses == 0)
+    return TRUE;
+
+  widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture));
+  settings = gtk_widget_get_settings (widget);
+  g_object_get (settings,
+                "gtk-double-click-distance", &double_click_distance,
+                NULL);
+
+  if (ABS (priv->initial_press_x - x) < double_click_distance &&
+      ABS (priv->initial_press_y - y) < double_click_distance)
+    {
+      if (!priv->rect_is_set ||
+          (x >= priv->rect.x && x < priv->rect.x + priv->rect.width &&
+           y >= priv->rect.y && y < priv->rect.y + priv->rect.height))
+        return TRUE;
+    }
+
+  return FALSE;
+}
+
+static void
+gtk_gesture_click_begin (GtkGesture       *gesture,
+                         GdkEventSequence *sequence)
+{
+  GtkGestureClick *click;
+  GtkGestureClickPrivate *priv;
+  guint n_presses, button = 1;
+  GdkEventSequence *current;
+  const GdkEvent *event;
+  GdkEventType event_type;
+  GdkDevice *device;
+  gdouble x, y;
+
+  if (!gtk_gesture_handles_sequence (gesture, sequence))
+    return;
+
+  click = GTK_GESTURE_CLICK (gesture);
+  priv = gtk_gesture_click_get_instance_private (click);
+  event = gtk_gesture_get_last_event (gesture, sequence);
+  current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
+  device = gdk_event_get_source_device (event);
+  event_type = gdk_event_get_event_type (event);
+
+  if (event_type == GDK_BUTTON_PRESS)
+    gdk_event_get_button (event, &button);
+  else if (event_type == GDK_TOUCH_BEGIN)
+    button = 1;
+  else
+    return;
+
+  /* Reset the gesture if the button number changes mid-recognition */
+  if (priv->n_presses > 0 &&
+      priv->current_button != button)
+    _gtk_gesture_click_stop (click);
+
+  /* Reset also if the device changed */
+  if (priv->current_device && priv->current_device != device)
+    _gtk_gesture_click_stop (click);
+
+  priv->current_device = device;
+  priv->current_button = button;
+  _gtk_gesture_click_update_timeout (click);
+  gtk_gesture_get_point (gesture, current, &x, &y);
+
+  if (!_gtk_gesture_click_check_within_threshold (click, x, y))
+    _gtk_gesture_click_stop (click);
+
+  /* Increment later the real counter, just if the gesture is
+   * reset on the pressed handler */
+  n_presses = priv->n_release = priv->n_presses + 1;
+
+  g_signal_emit (gesture, signals[PRESSED], 0, n_presses, x, y);
+
+  if (priv->n_presses == 0)
+    {
+      priv->initial_press_x = x;
+      priv->initial_press_y = y;
+    }
+
+  priv->n_presses++;
+}
+
+static void
+gtk_gesture_click_update (GtkGesture       *gesture,
+                          GdkEventSequence *sequence)
+{
+  GtkGestureClick *click;
+  GdkEventSequence *current;
+  gdouble x, y;
+
+  click = GTK_GESTURE_CLICK (gesture);
+  current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
+  gtk_gesture_get_point (gesture, current, &x, &y);
+
+  if (!_gtk_gesture_click_check_within_threshold (click, x, y))
+    _gtk_gesture_click_stop (click);
+}
+
+static void
+gtk_gesture_click_end (GtkGesture       *gesture,
+                       GdkEventSequence *sequence)
+{
+  GtkGestureClick *click;
+  GtkGestureClickPrivate *priv;
+  GdkEventSequence *current;
+  gdouble x, y;
+  gboolean interpreted;
+  GtkEventSequenceState state;
+
+  click = GTK_GESTURE_CLICK (gesture);
+  priv = gtk_gesture_click_get_instance_private (click);
+  current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
+  interpreted = gtk_gesture_get_point (gesture, current, &x, &y);
+  state = gtk_gesture_get_sequence_state (gesture, current);
+
+  if (state != GTK_EVENT_SEQUENCE_DENIED && interpreted)
+    g_signal_emit (gesture, signals[RELEASED], 0, priv->n_release, x, y);
+
+  priv->n_release = 0;
+}
+
+static void
+gtk_gesture_click_cancel (GtkGesture       *gesture,
+                          GdkEventSequence *sequence)
+{
+  _gtk_gesture_click_stop (GTK_GESTURE_CLICK (gesture));
+  GTK_GESTURE_CLASS (gtk_gesture_click_parent_class)->cancel (gesture, sequence);
+}
+
+static void
+gtk_gesture_click_reset (GtkEventController *controller)
+{
+  _gtk_gesture_click_stop (GTK_GESTURE_CLICK (controller));
+  GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_click_parent_class)->reset (controller);
+}
+
+static gboolean
+gtk_gesture_click_handle_event (GtkEventController *controller,
+                                const GdkEvent     *event)
+{
+  GtkEventControllerClass *parent_controller;
+  GtkGestureClickPrivate *priv;
+  GdkEventSequence *sequence;
+  guint button;
+  gdouble x, y;
+
+  priv = gtk_gesture_click_get_instance_private (GTK_GESTURE_CLICK (controller));
+  parent_controller = GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_click_parent_class);
+  sequence = gdk_event_get_event_sequence (event);
+
+  if (priv->n_presses == 0 &&
+      !gtk_gesture_handles_sequence (GTK_GESTURE (controller), sequence) &&
+      (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE ||
+       gdk_event_get_event_type (event) == GDK_TOUCH_END))
+    {
+      if (!gdk_event_get_button (event, &button))
+        button = 0;
+      gdk_event_get_coords (event, &x, &y);
+      g_signal_emit (controller, signals[UNPAIRED_RELEASE], 0,
+                     x, y, button, sequence);
+    }
+
+  return parent_controller->handle_event (controller, event);
+}
+
+static void
+gtk_gesture_click_class_init (GtkGestureClickClass *klass)
+{
+  GtkEventControllerClass *controller_class = GTK_EVENT_CONTROLLER_CLASS (klass);
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  GtkGestureClass *gesture_class = GTK_GESTURE_CLASS (klass);
+
+  object_class->finalize = gtk_gesture_click_finalize;
+
+  gesture_class->check = gtk_gesture_click_check;
+  gesture_class->begin = gtk_gesture_click_begin;
+  gesture_class->update = gtk_gesture_click_update;
+  gesture_class->end = gtk_gesture_click_end;
+  gesture_class->cancel = gtk_gesture_click_cancel;
+
+  controller_class->reset = gtk_gesture_click_reset;
+  controller_class->handle_event = gtk_gesture_click_handle_event;
+
+  /**
+   * GtkGestureClick::pressed:
+   * @gesture: the object which received the signal
+   * @n_press: how many touch/button presses happened with this one
+   * @x: The X coordinate, in widget allocation coordinates
+   * @y: The Y coordinate, in widget allocation coordinates
+   *
+   * This signal is emitted whenever a button or touch press happens.
+   */
+  signals[PRESSED] =
+    g_signal_new (I_("pressed"),
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (GtkGestureClickClass, pressed),
+                  NULL, NULL, NULL,
+                  G_TYPE_NONE, 3, G_TYPE_INT,
+                  G_TYPE_DOUBLE, G_TYPE_DOUBLE);
+
+  /**
+   * GtkGestureClick::released:
+   * @gesture: the object which received the signal
+   * @n_press: number of press that is paired with this release
+   * @x: The X coordinate, in widget allocation coordinates
+   * @y: The Y coordinate, in widget allocation coordinates
+   *
+   * This signal is emitted when a button or touch is released. @n_press
+   * will report the number of press that is paired to this event, note
+   * that #GtkGestureClick::stopped may have been emitted between the
+   * press and its release, @n_press will only start over at the next press.
+   */
+  signals[RELEASED] =
+    g_signal_new (I_("released"),
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (GtkGestureClickClass, released),
+                  NULL, NULL, NULL,
+                  G_TYPE_NONE, 3, G_TYPE_INT,
+                  G_TYPE_DOUBLE, G_TYPE_DOUBLE);
+  /**
+   * GtkGestureClick::stopped:
+   * @gesture: the object which received the signal
+   *
+   * This signal is emitted whenever any time/distance threshold has
+   * been exceeded.
+   */
+  signals[STOPPED] =
+    g_signal_new (I_("stopped"),
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (GtkGestureClickClass, stopped),
+                  NULL, NULL, NULL,
+                  G_TYPE_NONE, 0);
+
+  /**
+   * GtkGestureClick::unpaired-release
+   * @gesture: the object which received the signal
+   * @x: X coordinate of the event
+   * @y: Y coordinate of the event
+   * @button: Button being released
+   * @sequence: Sequence being released
+   *
+   * This signal is emitted whenever the gesture receives a release
+   * event that had no previous corresponding press. Due to implicit
+   * grabs, this can only happen on situations where input is grabbed
+   * elsewhere mid-press or the pressed widget voluntarily relinquishes
+   * its implicit grab.
+   */
+  signals[UNPAIRED_RELEASE] =
+    g_signal_new (I_("unpaired-release"),
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0, NULL, NULL, NULL,
+                  G_TYPE_NONE, 4,
+                  G_TYPE_DOUBLE, G_TYPE_DOUBLE,
+                  G_TYPE_UINT, GDK_TYPE_EVENT_SEQUENCE);
+}
+
+static void
+gtk_gesture_click_init (GtkGestureClick *gesture)
+{
+}
+
+/**
+ * gtk_gesture_click_new:
+ *
+ * Returns a newly created #GtkGesture that recognizes single and multiple
+ * presses.
+ *
+ * Returns: a newly created #GtkGestureClick
+ **/
+GtkGesture *
+gtk_gesture_click_new (void)
+{
+  return g_object_new (GTK_TYPE_GESTURE_CLICK,
+                       NULL);
+}
+
+/**
+ * gtk_gesture_click_set_area:
+ * @gesture: a #GtkGestureClick
+ * @rect: (allow-none): rectangle to receive coordinates on
+ *
+ * If @rect is non-%NULL, the press area will be checked to be
+ * confined within the rectangle, otherwise the button count
+ * will be reset so the press is seen as being the first one.
+ * If @rect is %NULL, the area will be reset to an unrestricted
+ * state.
+ *
+ * Note: The rectangle is only used to determine whether any
+ * non-first click falls within the expected area. This is not
+ * akin to an input shape.
+ **/
+void
+gtk_gesture_click_set_area (GtkGestureClick    *gesture,
+                            const GdkRectangle *rect)
+{
+  GtkGestureClickPrivate *priv;
+
+  g_return_if_fail (GTK_IS_GESTURE_CLICK (gesture));
+
+  priv = gtk_gesture_click_get_instance_private (gesture);
+
+  if (!rect)
+    priv->rect_is_set = FALSE;
+  else
+    {
+      priv->rect_is_set = TRUE;
+      priv->rect = *rect;
+    }
+}
+
+/**
+ * gtk_gesture_click_get_area:
+ * @gesture: a #GtkGestureClick
+ * @rect: (out): return location for the press area
+ *
+ * If an area was set through gtk_gesture_click_set_area(),
+ * this function will return %TRUE and fill in @rect with the
+ * press area. See gtk_gesture_click_set_area() for more
+ * details on what the press area represents.
+ *
+ * Returns: %TRUE if @rect was filled with the press area
+ **/
+gboolean
+gtk_gesture_click_get_area (GtkGestureClick *gesture,
+                            GdkRectangle    *rect)
+{
+  GtkGestureClickPrivate *priv;
+
+  g_return_val_if_fail (GTK_IS_GESTURE_CLICK (gesture), FALSE);
+
+  priv = gtk_gesture_click_get_instance_private (gesture);
+
+  if (rect)
+    {
+      if (priv->rect_is_set)
+        *rect = priv->rect;
+      else
+        {
+          rect->x = rect->y = G_MININT;
+          rect->width = rect->height = G_MAXINT;
+        }
+    }
+
+  return priv->rect_is_set;
+}
diff --git a/gtk/gtkgestureclick.h b/gtk/gtkgestureclick.h
new file mode 100644 (file)
index 0000000..ea86fdb
--- /dev/null
@@ -0,0 +1,56 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author(s): Carlos Garnacho <carlosg@gnome.org>
+ */
+#ifndef __GTK_GESTURE_CLICK_H__
+#define __GTK_GESTURE_CLICK_H__
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gtk/gtkwidget.h>
+#include <gtk/gtkgesturesingle.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_GESTURE_CLICK         (gtk_gesture_click_get_type ())
+#define GTK_GESTURE_CLICK(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_GESTURE_CLICK, GtkGestureClick))
+#define GTK_GESTURE_CLICK_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GTK_TYPE_GESTURE_CLICK, GtkGestureClickClass))
+#define GTK_IS_GESTURE_CLICK(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_GESTURE_CLICK))
+#define GTK_IS_GESTURE_CLICK_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GTK_TYPE_GESTURE_CLICK))
+#define GTK_GESTURE_CLICK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_GESTURE_CLICK, GtkGestureClickClass))
+
+typedef struct _GtkGestureClick GtkGestureClick;
+typedef struct _GtkGestureClickClass GtkGestureClickClass;
+
+GDK_AVAILABLE_IN_ALL
+GType        gtk_gesture_click_get_type (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+GtkGesture * gtk_gesture_click_new      (void);
+
+GDK_AVAILABLE_IN_ALL
+void         gtk_gesture_click_set_area (GtkGestureClick    *gesture,
+                                         const GdkRectangle *rect);
+GDK_AVAILABLE_IN_ALL
+gboolean     gtk_gesture_click_get_area (GtkGestureClick    *gesture,
+                                         GdkRectangle       *rect);
+
+G_END_DECLS
+
+#endif /* __GTK_GESTURE_CLICK_H__ */
diff --git a/gtk/gtkgestureclickprivate.h b/gtk/gtkgestureclickprivate.h
new file mode 100644 (file)
index 0000000..6e3f825
--- /dev/null
@@ -0,0 +1,48 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2014 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Author(s): Carlos Garnacho <carlosg@gnome.org>
+ */
+#ifndef __GTK_GESTURE_CLICK_PRIVATE_H__
+#define __GTK_GESTURE_CLICK_PRIVATE_H__
+
+#include "gtkgesturesingleprivate.h"
+#include "gtkgestureclick.h"
+
+struct _GtkGestureClick
+{
+  GtkGestureSingle parent_instance;
+};
+
+struct _GtkGestureClickClass
+{
+  GtkGestureSingleClass parent_class;
+
+  void     (* pressed)  (GtkGestureClick *gesture,
+                         gint             n_press,
+                         gdouble          x,
+                         gdouble          y);
+  void     (* released) (GtkGestureClick *gesture,
+                         gint             n_press,
+                         gdouble          x,
+                         gdouble          y);
+  void     (* stopped)  (GtkGestureClick *gesture);
+
+  /*<private>*/
+  gpointer padding[10];
+};
+
+#endif /* __GTK_GESTURE_CLICK_PRIVATE_H__ */
diff --git a/gtk/gtkgesturemultipress.c b/gtk/gtkgesturemultipress.c
deleted file mode 100644 (file)
index d2877d4..0000000
+++ /dev/null
@@ -1,519 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2014 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Author(s): Carlos Garnacho <carlosg@gnome.org>
- */
-
-/**
- * SECTION:gtkgesturemultipress
- * @Short_description: Multipress gesture
- * @Title: GtkGestureMultiPress
- *
- * #GtkGestureMultiPress is a #GtkGesture implementation able to recognize
- * multiple clicks on a nearby zone, which can be listened for through the
- * #GtkGestureMultiPress::pressed signal. Whenever time or distance between
- * clicks exceed the GTK+ defaults, #GtkGestureMultiPress::stopped is emitted,
- * and the click counter is reset.
- *
- * Callers may also restrict the area that is considered valid for a >1
- * touch/button press through gtk_gesture_multi_press_set_area(), so any
- * click happening outside that area is considered to be a first click of
- * its own.
- */
-
-#include "config.h"
-#include "gtkgestureprivate.h"
-#include "gtkgesturemultipress.h"
-#include "gtkgesturemultipressprivate.h"
-#include "gtkprivate.h"
-#include "gtkintl.h"
-
-typedef struct _GtkGestureMultiPressPrivate GtkGestureMultiPressPrivate;
-
-struct _GtkGestureMultiPressPrivate
-{
-  GdkRectangle rect;
-  GdkDevice *current_device;
-  gdouble initial_press_x;
-  gdouble initial_press_y;
-  guint double_click_timeout_id;
-  guint n_presses;
-  guint n_release;
-  guint current_button;
-  guint rect_is_set : 1;
-};
-
-enum {
-  PRESSED,
-  RELEASED,
-  STOPPED,
-  UNPAIRED_RELEASE,
-  LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-G_DEFINE_TYPE_WITH_PRIVATE (GtkGestureMultiPress, gtk_gesture_multi_press, GTK_TYPE_GESTURE_SINGLE)
-
-static void
-gtk_gesture_multi_press_finalize (GObject *object)
-{
-  GtkGestureMultiPressPrivate *priv;
-  GtkGestureMultiPress *gesture;
-
-  gesture = GTK_GESTURE_MULTI_PRESS (object);
-  priv = gtk_gesture_multi_press_get_instance_private (gesture);
-
-  if (priv->double_click_timeout_id)
-    {
-      g_source_remove (priv->double_click_timeout_id);
-      priv->double_click_timeout_id = 0;
-    }
-
-  G_OBJECT_CLASS (gtk_gesture_multi_press_parent_class)->finalize (object);
-}
-
-static gboolean
-gtk_gesture_multi_press_check (GtkGesture *gesture)
-{
-  GtkGestureMultiPress *multi_press;
-  GtkGestureMultiPressPrivate *priv;
-  GList *sequences;
-  gboolean active;
-
-  multi_press = GTK_GESTURE_MULTI_PRESS (gesture);
-  priv = gtk_gesture_multi_press_get_instance_private (multi_press);
-  sequences = gtk_gesture_get_sequences (gesture);
-
-  active = g_list_length (sequences) == 1 || priv->double_click_timeout_id;
-  g_list_free (sequences);
-
-  return active;
-}
-
-static void
-_gtk_gesture_multi_press_stop (GtkGestureMultiPress *gesture)
-{
-  GtkGestureMultiPressPrivate *priv;
-
-  priv = gtk_gesture_multi_press_get_instance_private (gesture);
-
-  if (priv->n_presses == 0)
-    return;
-
-  priv->current_device = NULL;
-  priv->current_button = 0;
-  priv->n_presses = 0;
-  g_signal_emit (gesture, signals[STOPPED], 0);
-  _gtk_gesture_check (GTK_GESTURE (gesture));
-}
-
-static gboolean
-_double_click_timeout_cb (gpointer user_data)
-{
-  GtkGestureMultiPress *gesture = user_data;
-  GtkGestureMultiPressPrivate *priv;
-
-  priv = gtk_gesture_multi_press_get_instance_private (gesture);
-  priv->double_click_timeout_id = 0;
-  _gtk_gesture_multi_press_stop (gesture);
-
-  return FALSE;
-}
-
-static void
-_gtk_gesture_multi_press_update_timeout (GtkGestureMultiPress *gesture)
-{
-  GtkGestureMultiPressPrivate *priv;
-  guint double_click_time;
-  GtkSettings *settings;
-  GtkWidget *widget;
-
-  priv = gtk_gesture_multi_press_get_instance_private (gesture);
-
-  if (priv->double_click_timeout_id)
-    g_source_remove (priv->double_click_timeout_id);
-
-  widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture));
-  settings = gtk_widget_get_settings (widget);
-  g_object_get (settings, "gtk-double-click-time", &double_click_time, NULL);
-
-  priv->double_click_timeout_id = g_timeout_add (double_click_time, _double_click_timeout_cb, gesture);
-  g_source_set_name_by_id (priv->double_click_timeout_id, "[gtk] _double_click_timeout_cb");
-}
-
-static gboolean
-_gtk_gesture_multi_press_check_within_threshold (GtkGestureMultiPress *gesture,
-                                                 gdouble               x,
-                                                 gdouble               y)
-{
-  GtkGestureMultiPressPrivate *priv;
-  guint double_click_distance;
-  GtkSettings *settings;
-  GtkWidget *widget;
-
-  priv = gtk_gesture_multi_press_get_instance_private (gesture);
-
-  if (priv->n_presses == 0)
-    return TRUE;
-
-  widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture));
-  settings = gtk_widget_get_settings (widget);
-  g_object_get (settings,
-                "gtk-double-click-distance", &double_click_distance,
-                NULL);
-
-  if (ABS (priv->initial_press_x - x) < double_click_distance &&
-      ABS (priv->initial_press_y - y) < double_click_distance)
-    {
-      if (!priv->rect_is_set ||
-          (x >= priv->rect.x && x < priv->rect.x + priv->rect.width &&
-           y >= priv->rect.y && y < priv->rect.y + priv->rect.height))
-        return TRUE;
-    }
-
-  return FALSE;
-}
-
-static void
-gtk_gesture_multi_press_begin (GtkGesture       *gesture,
-                               GdkEventSequence *sequence)
-{
-  GtkGestureMultiPress *multi_press;
-  GtkGestureMultiPressPrivate *priv;
-  guint n_presses, button = 1;
-  GdkEventSequence *current;
-  const GdkEvent *event;
-  GdkEventType event_type;
-  GdkDevice *device;
-  gdouble x, y;
-
-  if (!gtk_gesture_handles_sequence (gesture, sequence))
-    return;
-
-  multi_press = GTK_GESTURE_MULTI_PRESS (gesture);
-  priv = gtk_gesture_multi_press_get_instance_private (multi_press);
-  event = gtk_gesture_get_last_event (gesture, sequence);
-  current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
-  device = gdk_event_get_source_device (event);
-  event_type = gdk_event_get_event_type (event);
-
-  if (event_type == GDK_BUTTON_PRESS)
-    gdk_event_get_button (event, &button);
-  else if (event_type == GDK_TOUCH_BEGIN)
-    button = 1;
-  else
-    return;
-
-  /* Reset the gesture if the button number changes mid-recognition */
-  if (priv->n_presses > 0 &&
-      priv->current_button != button)
-    _gtk_gesture_multi_press_stop (multi_press);
-
-  /* Reset also if the device changed */
-  if (priv->current_device && priv->current_device != device)
-    _gtk_gesture_multi_press_stop (multi_press);
-
-  priv->current_device = device;
-  priv->current_button = button;
-  _gtk_gesture_multi_press_update_timeout (multi_press);
-  gtk_gesture_get_point (gesture, current, &x, &y);
-
-  if (!_gtk_gesture_multi_press_check_within_threshold (multi_press, x, y))
-    _gtk_gesture_multi_press_stop (multi_press);
-
-  /* Increment later the real counter, just if the gesture is
-   * reset on the pressed handler */
-  n_presses = priv->n_release = priv->n_presses + 1;
-
-  g_signal_emit (gesture, signals[PRESSED], 0, n_presses, x, y);
-
-  if (priv->n_presses == 0)
-    {
-      priv->initial_press_x = x;
-      priv->initial_press_y = y;
-    }
-
-  priv->n_presses++;
-}
-
-static void
-gtk_gesture_multi_press_update (GtkGesture       *gesture,
-                                GdkEventSequence *sequence)
-{
-  GtkGestureMultiPress *multi_press;
-  GdkEventSequence *current;
-  gdouble x, y;
-
-  multi_press = GTK_GESTURE_MULTI_PRESS (gesture);
-  current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
-  gtk_gesture_get_point (gesture, current, &x, &y);
-
-  if (!_gtk_gesture_multi_press_check_within_threshold (multi_press, x, y))
-    _gtk_gesture_multi_press_stop (multi_press);
-}
-
-static void
-gtk_gesture_multi_press_end (GtkGesture       *gesture,
-                             GdkEventSequence *sequence)
-{
-  GtkGestureMultiPress *multi_press;
-  GtkGestureMultiPressPrivate *priv;
-  GdkEventSequence *current;
-  gdouble x, y;
-  gboolean interpreted;
-  GtkEventSequenceState state;
-
-  multi_press = GTK_GESTURE_MULTI_PRESS (gesture);
-  priv = gtk_gesture_multi_press_get_instance_private (multi_press);
-  current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
-  interpreted = gtk_gesture_get_point (gesture, current, &x, &y);
-  state = gtk_gesture_get_sequence_state (gesture, current);
-
-  if (state != GTK_EVENT_SEQUENCE_DENIED && interpreted)
-    g_signal_emit (gesture, signals[RELEASED], 0, priv->n_release, x, y);
-
-  priv->n_release = 0;
-}
-
-static void
-gtk_gesture_multi_press_cancel (GtkGesture       *gesture,
-                                GdkEventSequence *sequence)
-{
-  _gtk_gesture_multi_press_stop (GTK_GESTURE_MULTI_PRESS (gesture));
-  GTK_GESTURE_CLASS (gtk_gesture_multi_press_parent_class)->cancel (gesture, sequence);
-}
-
-static void
-gtk_gesture_multi_press_reset (GtkEventController *controller)
-{
-  _gtk_gesture_multi_press_stop (GTK_GESTURE_MULTI_PRESS (controller));
-  GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_multi_press_parent_class)->reset (controller);
-}
-
-static gboolean
-gtk_gesture_multi_press_handle_event (GtkEventController *controller,
-                                      const GdkEvent     *event)
-{
-  GtkEventControllerClass *parent_controller;
-  GtkGestureMultiPressPrivate *priv;
-  GdkEventSequence *sequence;
-  guint button;
-  gdouble x, y;
-
-  priv = gtk_gesture_multi_press_get_instance_private (GTK_GESTURE_MULTI_PRESS (controller));
-  parent_controller = GTK_EVENT_CONTROLLER_CLASS (gtk_gesture_multi_press_parent_class);
-  sequence = gdk_event_get_event_sequence (event);
-
-  if (priv->n_presses == 0 &&
-      !gtk_gesture_handles_sequence (GTK_GESTURE (controller), sequence) &&
-      (gdk_event_get_event_type (event) == GDK_BUTTON_RELEASE ||
-       gdk_event_get_event_type (event) == GDK_TOUCH_END))
-    {
-      if (!gdk_event_get_button (event, &button))
-        button = 0;
-      gdk_event_get_coords (event, &x, &y);
-      g_signal_emit (controller, signals[UNPAIRED_RELEASE], 0,
-                     x, y, button, sequence);
-    }
-
-  return parent_controller->handle_event (controller, event);
-}
-
-static void
-gtk_gesture_multi_press_class_init (GtkGestureMultiPressClass *klass)
-{
-  GtkEventControllerClass *controller_class = GTK_EVENT_CONTROLLER_CLASS (klass);
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GtkGestureClass *gesture_class = GTK_GESTURE_CLASS (klass);
-
-  object_class->finalize = gtk_gesture_multi_press_finalize;
-
-  gesture_class->check = gtk_gesture_multi_press_check;
-  gesture_class->begin = gtk_gesture_multi_press_begin;
-  gesture_class->update = gtk_gesture_multi_press_update;
-  gesture_class->end = gtk_gesture_multi_press_end;
-  gesture_class->cancel = gtk_gesture_multi_press_cancel;
-
-  controller_class->reset = gtk_gesture_multi_press_reset;
-  controller_class->handle_event = gtk_gesture_multi_press_handle_event;
-
-  /**
-   * GtkGestureMultiPress::pressed:
-   * @gesture: the object which received the signal
-   * @n_press: how many touch/button presses happened with this one
-   * @x: The X coordinate, in widget allocation coordinates
-   * @y: The Y coordinate, in widget allocation coordinates
-   *
-   * This signal is emitted whenever a button or touch press happens.
-   */
-  signals[PRESSED] =
-    g_signal_new (I_("pressed"),
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  G_STRUCT_OFFSET (GtkGestureMultiPressClass, pressed),
-                  NULL, NULL, NULL,
-                  G_TYPE_NONE, 3, G_TYPE_INT,
-                  G_TYPE_DOUBLE, G_TYPE_DOUBLE);
-
-  /**
-   * GtkGestureMultiPress::released:
-   * @gesture: the object which received the signal
-   * @n_press: number of press that is paired with this release
-   * @x: The X coordinate, in widget allocation coordinates
-   * @y: The Y coordinate, in widget allocation coordinates
-   *
-   * This signal is emitted when a button or touch is released. @n_press
-   * will report the number of press that is paired to this event, note
-   * that #GtkGestureMultiPress::stopped may have been emitted between the
-   * press and its release, @n_press will only start over at the next press.
-   */
-  signals[RELEASED] =
-    g_signal_new (I_("released"),
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  G_STRUCT_OFFSET (GtkGestureMultiPressClass, released),
-                  NULL, NULL, NULL,
-                  G_TYPE_NONE, 3, G_TYPE_INT,
-                  G_TYPE_DOUBLE, G_TYPE_DOUBLE);
-  /**
-   * GtkGestureMultiPress::stopped:
-   * @gesture: the object which received the signal
-   *
-   * This signal is emitted whenever any time/distance threshold has
-   * been exceeded.
-   */
-  signals[STOPPED] =
-    g_signal_new (I_("stopped"),
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  G_STRUCT_OFFSET (GtkGestureMultiPressClass, stopped),
-                  NULL, NULL, NULL,
-                  G_TYPE_NONE, 0);
-
-  /**
-   * GtkGestureMultiPress::unpaired-release
-   * @gesture: the object which received the signal
-   * @x: X coordinate of the event
-   * @y: Y coordinate of the event
-   * @button: Button being released
-   * @sequence: Sequence being released
-   *
-   * This signal is emitted whenever the gesture receives a release
-   * event that had no previous corresponding press. Due to implicit
-   * grabs, this can only happen on situations where input is grabbed
-   * elsewhere mid-press or the pressed widget voluntarily relinquishes
-   * its implicit grab.
-   */
-  signals[UNPAIRED_RELEASE] =
-    g_signal_new (I_("unpaired-release"),
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, NULL, NULL, NULL,
-                  G_TYPE_NONE, 4,
-                  G_TYPE_DOUBLE, G_TYPE_DOUBLE,
-                  G_TYPE_UINT, GDK_TYPE_EVENT_SEQUENCE);
-}
-
-static void
-gtk_gesture_multi_press_init (GtkGestureMultiPress *gesture)
-{
-}
-
-/**
- * gtk_gesture_multi_press_new:
- *
- * Returns a newly created #GtkGesture that recognizes single and multiple
- * presses.
- *
- * Returns: a newly created #GtkGestureMultiPress
- **/
-GtkGesture *
-gtk_gesture_multi_press_new (void)
-{
-  return g_object_new (GTK_TYPE_GESTURE_MULTI_PRESS,
-                       NULL);
-}
-
-/**
- * gtk_gesture_multi_press_set_area:
- * @gesture: a #GtkGestureMultiPress
- * @rect: (allow-none): rectangle to receive coordinates on
- *
- * If @rect is non-%NULL, the press area will be checked to be
- * confined within the rectangle, otherwise the button count
- * will be reset so the press is seen as being the first one.
- * If @rect is %NULL, the area will be reset to an unrestricted
- * state.
- *
- * Note: The rectangle is only used to determine whether any
- * non-first click falls within the expected area. This is not
- * akin to an input shape.
- **/
-void
-gtk_gesture_multi_press_set_area (GtkGestureMultiPress *gesture,
-                                  const GdkRectangle   *rect)
-{
-  GtkGestureMultiPressPrivate *priv;
-
-  g_return_if_fail (GTK_IS_GESTURE_MULTI_PRESS (gesture));
-
-  priv = gtk_gesture_multi_press_get_instance_private (gesture);
-
-  if (!rect)
-    priv->rect_is_set = FALSE;
-  else
-    {
-      priv->rect_is_set = TRUE;
-      priv->rect = *rect;
-    }
-}
-
-/**
- * gtk_gesture_multi_press_get_area:
- * @gesture: a #GtkGestureMultiPress
- * @rect: (out): return location for the press area
- *
- * If an area was set through gtk_gesture_multi_press_set_area(),
- * this function will return %TRUE and fill in @rect with the
- * press area. See gtk_gesture_multi_press_set_area() for more
- * details on what the press area represents.
- *
- * Returns: %TRUE if @rect was filled with the press area
- **/
-gboolean
-gtk_gesture_multi_press_get_area (GtkGestureMultiPress *gesture,
-                                  GdkRectangle         *rect)
-{
-  GtkGestureMultiPressPrivate *priv;
-
-  g_return_val_if_fail (GTK_IS_GESTURE_MULTI_PRESS (gesture), FALSE);
-
-  priv = gtk_gesture_multi_press_get_instance_private (gesture);
-
-  if (rect)
-    {
-      if (priv->rect_is_set)
-        *rect = priv->rect;
-      else
-        {
-          rect->x = rect->y = G_MININT;
-          rect->width = rect->height = G_MAXINT;
-        }
-    }
-
-  return priv->rect_is_set;
-}
diff --git a/gtk/gtkgesturemultipress.h b/gtk/gtkgesturemultipress.h
deleted file mode 100644 (file)
index 16c50ff..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2014 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Author(s): Carlos Garnacho <carlosg@gnome.org>
- */
-#ifndef __GTK_GESTURE_MULTI_PRESS_H__
-#define __GTK_GESTURE_MULTI_PRESS_H__
-
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
-#include <gtk/gtkwidget.h>
-#include <gtk/gtkgesturesingle.h>
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_GESTURE_MULTI_PRESS         (gtk_gesture_multi_press_get_type ())
-#define GTK_GESTURE_MULTI_PRESS(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_GESTURE_MULTI_PRESS, GtkGestureMultiPress))
-#define GTK_GESTURE_MULTI_PRESS_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GTK_TYPE_GESTURE_MULTI_PRESS, GtkGestureMultiPressClass))
-#define GTK_IS_GESTURE_MULTI_PRESS(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_GESTURE_MULTI_PRESS))
-#define GTK_IS_GESTURE_MULTI_PRESS_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GTK_TYPE_GESTURE_MULTI_PRESS))
-#define GTK_GESTURE_MULTI_PRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_GESTURE_MULTI_PRESS, GtkGestureMultiPressClass))
-
-typedef struct _GtkGestureMultiPress GtkGestureMultiPress;
-typedef struct _GtkGestureMultiPressClass GtkGestureMultiPressClass;
-
-GDK_AVAILABLE_IN_ALL
-GType        gtk_gesture_multi_press_get_type (void) G_GNUC_CONST;
-
-GDK_AVAILABLE_IN_ALL
-GtkGesture * gtk_gesture_multi_press_new      (void);
-
-GDK_AVAILABLE_IN_ALL
-void         gtk_gesture_multi_press_set_area (GtkGestureMultiPress *gesture,
-                                              const GdkRectangle   *rect);
-GDK_AVAILABLE_IN_ALL
-gboolean     gtk_gesture_multi_press_get_area (GtkGestureMultiPress *gesture,
-                                               GdkRectangle         *rect);
-
-G_END_DECLS
-
-#endif /* __GTK_GESTURE_MULTI_PRESS_H__ */
diff --git a/gtk/gtkgesturemultipressprivate.h b/gtk/gtkgesturemultipressprivate.h
deleted file mode 100644 (file)
index ae74979..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2014 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Author(s): Carlos Garnacho <carlosg@gnome.org>
- */
-#ifndef __GTK_GESTURE_MULTI_PRESS_PRIVATE_H__
-#define __GTK_GESTURE_MULTI_PRESS_PRIVATE_H__
-
-#include "gtkgesturesingleprivate.h"
-#include "gtkgesturemultipress.h"
-
-struct _GtkGestureMultiPress
-{
-  GtkGestureSingle parent_instance;
-};
-
-struct _GtkGestureMultiPressClass
-{
-  GtkGestureSingleClass parent_class;
-
-  void     (* pressed) (GtkGestureMultiPress *gesture,
-                        gint                  n_press,
-                        gdouble               x,
-                        gdouble               y);
-  void     (* released) (GtkGestureMultiPress *gesture,
-                         gint                  n_press,
-                         gdouble               x,
-                         gdouble               y);
-  void     (* stopped) (GtkGestureMultiPress *gesture);
-
-  /*<private>*/
-  gpointer padding[10];
-};
-
-#endif /* __GTK_GESTURE_MULTI_PRESS_PRIVATE_H__ */
index 5bebc6a9991acd2efa7bea5f74116da5a7ae3bbb..56d15c5fc431df2b29af1c857bce30f276939043 100644 (file)
@@ -167,12 +167,12 @@ static void             gtk_icon_view_leave                     (GtkEventControl
                                                                  GdkCrossingMode     mode,
                                                                  GdkNotifyType       detail,
                                                                  gpointer            user_data);
-static void             gtk_icon_view_button_press              (GtkGestureMultiPress *gesture,
+static void             gtk_icon_view_button_press              (GtkGestureClick *gesture,
                                                                  int                   n_press,
                                                                  double                x,
                                                                  double                y,
                                                                  gpointer              user_data);
-static void             gtk_icon_view_button_release            (GtkGestureMultiPress *gesture,
+static void             gtk_icon_view_button_release            (GtkGestureClick *gesture,
                                                                  int                   n_press,
                                                                  double                x,
                                                                  double                y,
@@ -958,7 +958,7 @@ gtk_icon_view_init (GtkIconView *icon_view)
   gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (icon_view)),
                                GTK_STYLE_CLASS_VIEW);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed", G_CALLBACK (gtk_icon_view_button_press),
                     icon_view);
   g_signal_connect (gesture, "released", G_CALLBACK (gtk_icon_view_button_release),
@@ -2101,11 +2101,11 @@ gtk_icon_view_get_cursor (GtkIconView      *icon_view,
 }
 
 static void
-gtk_icon_view_button_press (GtkGestureMultiPress *gesture,
-                            int                   n_press,
-                            double                x,
-                            double                y,
-                            gpointer              user_data)
+gtk_icon_view_button_press (GtkGestureClick *gesture,
+                            int              n_press,
+                            double           x,
+                            double           y,
+                            gpointer         user_data)
 {
   GtkIconView *icon_view = user_data;
   GtkWidget *widget = GTK_WIDGET (icon_view);
@@ -2271,11 +2271,11 @@ button_event_modifies_selection (const GdkEventButton *event)
 }
 
 static void
-gtk_icon_view_button_release (GtkGestureMultiPress *gesture,
-                              int                   n_press,
-                              double                x,
-                              double                y,
-                              gpointer              user_data)
+gtk_icon_view_button_release (GtkGestureClick *gesture,
+                              int              n_press,
+                              double           x,
+                              double           y,
+                              gpointer         user_data)
 {
   GtkIconView *icon_view = user_data;
   int button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
index 351ccfac66da01389b66cad4f0834e100fc74aa2..e507cb55bc828a2e5903fdcf6bb1b2f0030a56da 100644 (file)
@@ -17,7 +17,7 @@
 
 #include "gtk/gtkiconview.h"
 #include "gtk/gtkcssnodeprivate.h"
-#include "gtk/gtkgesturemultipress.h"
+#include "gtk/gtkgestureclick.h"
 #include "gtk/gtkeventcontrollermotion.h"
 
 #ifndef __GTK_ICON_VIEW_PRIVATE_H__
index 1955cc17e3e69b1274c96b7dd8d3a46cb0caea0b..647f238d1c7dc9edebecac4dd4d91e3f35b367a0 100644 (file)
@@ -482,11 +482,11 @@ gtk_im_context_wayland_finalize (GObject *object)
 }
 
 static void
-pressed_cb (GtkGestureMultiPress *gesture,
-            gint                  n_press,
-            gdouble               x,
-            gdouble               y,
-            GtkIMContextWayland  *context)
+pressed_cb (GtkGestureClick     *gesture,
+            gint                 n_press,
+            gdouble              x,
+            gdouble              y,
+            GtkIMContextWayland *context)
 {
   if (n_press == 1)
     {
@@ -496,11 +496,11 @@ pressed_cb (GtkGestureMultiPress *gesture,
 }
 
 static void
-released_cb (GtkGestureMultiPress *gesture,
-             gint                  n_press,
-             gdouble               x,
-             gdouble               y,
-             GtkIMContextWayland  *context)
+released_cb (GtkGestureClick     *gesture,
+             gint                 n_press,
+             gdouble              x,
+             gdouble              y,
+             GtkIMContextWayland *context)
 {
   GtkIMContextWaylandGlobal *global;
   GtkInputHints hints;
@@ -547,7 +547,7 @@ gtk_im_context_wayland_set_client_widget (GtkIMContext *context,
     {
       GtkGesture *gesture;
 
-      gesture = gtk_gesture_multi_press_new ();
+      gesture = gtk_gesture_click_new ();
       gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
                                                   GTK_PHASE_CAPTURE);
       g_signal_connect (gesture, "pressed",
index fe440701e3f98ab741d7e6cbfc72a5e323f700e6..ff62dd33022f95828c90d8cf80cf1d7e7a172898 100644 (file)
@@ -35,7 +35,7 @@
 #include "gtkdnd.h"
 #include "gtkeventcontrollermotion.h"
 #include "gtkgesturedrag.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturesingle.h"
 #include "gtkimage.h"
 #include "gtkintl.h"
@@ -363,7 +363,7 @@ struct _GtkLabelSelectionInfo
   GtkLabelLink *active_link;
 
   GtkGesture *drag_gesture;
-  GtkGesture *multipress_gesture;
+  GtkGesture *click_gesture;
   GtkEventController *motion_controller;
 
   gint drag_start_x;
@@ -553,12 +553,12 @@ static void          emit_activate_link         (GtkLabel     *label,
                                                  GtkLabelLink *link);
 
 /* Event controller callbacks */
-static void   gtk_label_multipress_gesture_pressed  (GtkGestureMultiPress *gesture,
+static void   gtk_label_click_gesture_pressed  (GtkGestureClick *gesture,
                                                      gint                  n_press,
                                                      gdouble               x,
                                                      gdouble               y,
                                                      GtkLabel             *label);
-static void   gtk_label_multipress_gesture_released (GtkGestureMultiPress *gesture,
+static void   gtk_label_click_gesture_released (GtkGestureClick *gesture,
                                                      gint                  n_press,
                                                      gdouble               x,
                                                      gdouble               y,
@@ -4458,11 +4458,11 @@ out:
 }
 
 static void
-gtk_label_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
-                                      gint                  n_press,
-                                      gdouble               widget_x,
-                                      gdouble               widget_y,
-                                      GtkLabel             *label)
+gtk_label_click_gesture_pressed (GtkGestureClick *gesture,
+                                 gint             n_press,
+                                 gdouble          widget_x,
+                                 gdouble          widget_y,
+                                 GtkLabel        *label)
 {
   GtkLabelPrivate *priv = gtk_label_get_instance_private (label);
   GtkLabelSelectionInfo *info = priv->select_info;
@@ -4536,11 +4536,11 @@ gtk_label_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_label_multipress_gesture_released (GtkGestureMultiPress *gesture,
-                                       gint                  n_press,
-                                       gdouble               x,
-                                       gdouble               y,
-                                       GtkLabel             *label)
+gtk_label_click_gesture_released (GtkGestureClick *gesture,
+                                  gint             n_press,
+                                  gdouble          x,
+                                  gdouble          y,
+                                  GtkLabel        *label)
 {
   GtkLabelPrivate *priv = gtk_label_get_instance_private (label);
   GtkLabelSelectionInfo *info = priv->select_info;
@@ -4605,9 +4605,9 @@ connect_mnemonics_visible_notify (GtkLabel *label)
 }
 
 static void
-drag_begin_cb (GtkWidget      *widget,
-               GdkDrag        *drag,
-               gpointer        data)
+drag_begin_cb (GtkWidget *widget,
+               GdkDrag   *drag,
+               gpointer   data)
 {
   GtkLabel *label = GTK_LABEL (widget);
   GtkLabelPrivate *priv = gtk_label_get_instance_private (label);
@@ -5047,14 +5047,14 @@ gtk_label_ensure_select_info (GtkLabel *label)
       gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (priv->select_info->drag_gesture), TRUE);
       gtk_widget_add_controller (GTK_WIDGET (label), GTK_EVENT_CONTROLLER (priv->select_info->drag_gesture));
 
-      priv->select_info->multipress_gesture = gtk_gesture_multi_press_new ();
-      g_signal_connect (priv->select_info->multipress_gesture, "pressed",
-                        G_CALLBACK (gtk_label_multipress_gesture_pressed), label);
-      g_signal_connect (priv->select_info->multipress_gesture, "released",
-                        G_CALLBACK (gtk_label_multipress_gesture_released), label);
-      gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->select_info->multipress_gesture), 0);
-      gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (priv->select_info->multipress_gesture), TRUE);
-      gtk_widget_add_controller (GTK_WIDGET (label), GTK_EVENT_CONTROLLER (priv->select_info->multipress_gesture));
+      priv->select_info->click_gesture = gtk_gesture_click_new ();
+      g_signal_connect (priv->select_info->click_gesture, "pressed",
+                        G_CALLBACK (gtk_label_click_gesture_pressed), label);
+      g_signal_connect (priv->select_info->click_gesture, "released",
+                        G_CALLBACK (gtk_label_click_gesture_released), label);
+      gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->select_info->click_gesture), 0);
+      gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (priv->select_info->click_gesture), TRUE);
+      gtk_widget_add_controller (GTK_WIDGET (label), GTK_EVENT_CONTROLLER (priv->select_info->click_gesture));
 
       priv->select_info->motion_controller = gtk_event_controller_motion_new ();
       g_signal_connect (priv->select_info->motion_controller, "motion",
@@ -5079,7 +5079,7 @@ gtk_label_clear_select_info (GtkLabel *label)
   if (!priv->select_info->selectable && !priv->select_info->links)
     {
       gtk_widget_remove_controller (GTK_WIDGET (label), GTK_EVENT_CONTROLLER (priv->select_info->drag_gesture));
-      gtk_widget_remove_controller (GTK_WIDGET (label), GTK_EVENT_CONTROLLER (priv->select_info->multipress_gesture));
+      gtk_widget_remove_controller (GTK_WIDGET (label), GTK_EVENT_CONTROLLER (priv->select_info->click_gesture));
       gtk_widget_remove_controller (GTK_WIDGET (label), priv->select_info->motion_controller);
       GTK_LABEL_CONTENT (priv->select_info->provider)->label = NULL;
       g_object_unref (priv->select_info->provider);
index b116cdc58646992910a69229adea5806f7dd9786..f867b63c9179b373dc0722e80c737c4592cdf518 100644 (file)
@@ -54,7 +54,7 @@
 #include "gtklinkbutton.h"
 
 #include "gtkdragsource.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturesingle.h"
 #include "gtkintl.h"
 #include "gtklabel.h"
@@ -135,7 +135,7 @@ static gboolean gtk_link_button_query_tooltip_cb (GtkWidget    *widget,
                                                   gboolean      keyboard_tip,
                                                   GtkTooltip   *tooltip,
                                                   gpointer      data);
-static void gtk_link_button_pressed_cb (GtkGestureMultiPress *gesture,
+static void gtk_link_button_pressed_cb (GtkGestureClick *gesture,
                                         int                   n_press,
                                         double                x,
                                         double                y,
@@ -249,7 +249,7 @@ gtk_link_button_init (GtkLinkButton *link_button)
   gdk_content_formats_unref (targets);
   gtk_drag_source_set_icon_name (GTK_WIDGET (link_button), "text-x-generic");
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE);
@@ -382,11 +382,11 @@ gtk_link_button_do_popup (GtkLinkButton  *link_button,
 }
 
 static void
-gtk_link_button_pressed_cb (GtkGestureMultiPress *gesture,
-                            int                   n_press,
-                            double                x,
-                            double                y,
-                            gpointer              user_data)
+gtk_link_button_pressed_cb (GtkGestureClick *gesture,
+                            int              n_press,
+                            double           x,
+                            double           y,
+                            gpointer         user_data)
 {
   GtkLinkButton *link_button = user_data;
   GtkLinkButtonPrivate *priv = gtk_link_button_get_instance_private (link_button);
index 1927defb9b3ceeaf730bd37926a2bf5ef96db8d5..f10b6c947f8f7e30b981caee8b0fd860a031b925 100644 (file)
@@ -26,7 +26,7 @@
 #include "gtkcontainerprivate.h"
 #include "gtkcssnodeprivate.h"
 #include "gtkdnd.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkintl.h"
 #include "gtkmain.h"
 #include "gtkmarshalers.h"
@@ -282,24 +282,24 @@ static void                 gtk_list_box_selected_rows_changed          (GtkList
 static void                 gtk_list_box_set_accept_unpaired_release    (GtkListBox          *box,
                                                                          gboolean             accept);
 
-static void gtk_list_box_multipress_gesture_pressed  (GtkGestureMultiPress *gesture,
-                                                      guint                 n_press,
-                                                      gdouble               x,
-                                                      gdouble               y,
-                                                      GtkListBox           *box);
-static void gtk_list_box_multipress_gesture_released (GtkGestureMultiPress *gesture,
-                                                      guint                 n_press,
-                                                      gdouble               x,
-                                                      gdouble               y,
-                                                      GtkListBox           *box);
-static void gtk_list_box_multipress_unpaired_release (GtkGestureMultiPress *gesture,
-                                                      gdouble               x,
-                                                      gdouble               y,
-                                                      guint                 button,
-                                                      GdkEventSequence     *sequence,
-                                                      GtkListBox           *box);
-static void gtk_list_box_multipress_gesture_stopped  (GtkGestureMultiPress *gesture,
-                                                      GtkListBox           *box);
+static void gtk_list_box_click_gesture_pressed  (GtkGestureClick  *gesture,
+                                                 guint             n_press,
+                                                 gdouble           x,
+                                                 gdouble           y,
+                                                 GtkListBox       *box);
+static void gtk_list_box_click_gesture_released (GtkGestureClick  *gesture,
+                                                 guint             n_press,
+                                                 gdouble           x,
+                                                 gdouble           y,
+                                                 GtkListBox       *box);
+static void gtk_list_box_click_unpaired_release (GtkGestureClick  *gesture,
+                                                 gdouble           x,
+                                                 gdouble           y,
+                                                 guint             button,
+                                                 GdkEventSequence *sequence,
+                                                 GtkListBox       *box);
+static void gtk_list_box_click_gesture_stopped  (GtkGestureClick  *gesture,
+                                                 GtkListBox       *box);
 
 static void gtk_list_box_update_row_styles (GtkListBox    *box);
 static void gtk_list_box_update_row_style  (GtkListBox    *box,
@@ -658,7 +658,7 @@ gtk_list_box_init (GtkListBox *box)
   priv->children = g_sequence_new (NULL);
   priv->header_hash = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, NULL);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
                                               GTK_PHASE_BUBBLE);
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture),
@@ -666,13 +666,13 @@ gtk_list_box_init (GtkListBox *box)
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture),
                                  GDK_BUTTON_PRIMARY);
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (gtk_list_box_multipress_gesture_pressed), box);
+                    G_CALLBACK (gtk_list_box_click_gesture_pressed), box);
   g_signal_connect (gesture, "released",
-                    G_CALLBACK (gtk_list_box_multipress_gesture_released), box);
+                    G_CALLBACK (gtk_list_box_click_gesture_released), box);
   g_signal_connect (gesture, "stopped",
-                    G_CALLBACK (gtk_list_box_multipress_gesture_stopped), box);
+                    G_CALLBACK (gtk_list_box_click_gesture_stopped), box);
   g_signal_connect (gesture, "unpaired-release",
-                    G_CALLBACK (gtk_list_box_multipress_unpaired_release), box);
+                    G_CALLBACK (gtk_list_box_click_unpaired_release), box);
   gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (gesture));
 
   g_signal_connect (box, "notify::parent", G_CALLBACK (gtk_list_box_parent_cb), NULL);
@@ -1773,11 +1773,11 @@ gtk_list_box_select_and_activate_full (GtkListBox    *box,
 }
 
 static void
-gtk_list_box_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
-                                         guint                 n_press,
-                                         gdouble               x,
-                                         gdouble               y,
-                                         GtkListBox           *box)
+gtk_list_box_click_gesture_pressed (GtkGestureClick *gesture,
+                                    guint            n_press,
+                                    gdouble          x,
+                                    gdouble          y,
+                                    GtkListBox      *box)
 {
   GtkListBoxPrivate *priv = BOX_PRIV (box);
   GtkListBoxRow *row;
@@ -1817,12 +1817,12 @@ get_current_selection_modifiers (GtkWidget *widget,
 }
 
 static void
-gtk_list_box_multipress_unpaired_release (GtkGestureMultiPress *gesture,
-                                          gdouble               x,
-                                          gdouble               y,
-                                          guint                 button,
-                                          GdkEventSequence     *sequence,
-                                          GtkListBox           *box)
+gtk_list_box_click_unpaired_release (GtkGestureClick  *gesture,
+                                     gdouble           x,
+                                     gdouble           y,
+                                     guint             button,
+                                     GdkEventSequence *sequence,
+                                     GtkListBox       *box)
 {
   GtkListBoxPrivate *priv = BOX_PRIV (box);
   GtkListBoxRow *row;
@@ -1837,11 +1837,11 @@ gtk_list_box_multipress_unpaired_release (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_list_box_multipress_gesture_released (GtkGestureMultiPress *gesture,
-                                          guint                 n_press,
-                                          gdouble               x,
-                                          gdouble               y,
-                                          GtkListBox           *box)
+gtk_list_box_click_gesture_released (GtkGestureClick *gesture,
+                                     guint            n_press,
+                                     gdouble          x,
+                                     gdouble          y,
+                                     GtkListBox      *box)
 {
   GtkListBoxPrivate *priv = BOX_PRIV (box);
 
@@ -1890,7 +1890,7 @@ gtk_list_box_multipress_gesture_released (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_list_box_multipress_gesture_stopped (GtkGestureMultiPress *gesture,
+gtk_list_box_click_gesture_stopped (GtkGestureClick *gesture,
                                          GtkListBox           *box)
 {
   GtkListBoxPrivate *priv = BOX_PRIV (box);
index e36803ff0fbc046cc0befe1f02c72b755384b968..a4bc6be307b9e998af3de7129f736ae3c06e72de 100644 (file)
@@ -47,7 +47,7 @@
  *
  * |[<!-- language="C" -->
  *   // connect our handler which will popup the menu
- *   gesture = gtk_gesture_multi_press_new (window);
+ *   gesture = gtk_gesture_click_new (window);
  *   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture),
  *                                  GDK_BUTTON_SECONDARY);
  *   g_signal_connect (gesture, "begin", G_CALLBACK (my_popup_handler), menu);
@@ -281,12 +281,12 @@ static void gtk_menu_measure (GtkWidget      *widget,
                               int            *natural,
                               int            *minimum_baseline,
                               int            *natural_baseline);
-static void gtk_menu_pressed_cb (GtkGestureMultiPress *gesture,
+static void gtk_menu_pressed_cb (GtkGestureClick *gesture,
                                  int                   n_press,
                                  double                x,
                                  double                y,
                                  gpointer              user_data);
-static void gtk_menu_released_cb (GtkGestureMultiPress *gesture,
+static void gtk_menu_released_cb (GtkGestureClick *gesture,
                                   int                   n_press,
                                   double                x,
                                   double                y,
@@ -942,7 +942,7 @@ gtk_menu_init (GtkMenu *menu)
   gtk_widget_set_parent (priv->bottom_arrow_widget, GTK_WIDGET (menu));
   gtk_widget_set_child_visible (priv->bottom_arrow_widget, FALSE);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE);
@@ -2621,7 +2621,7 @@ pointer_in_menu_surface (GtkWidget *widget,
 
 
 static void
-gtk_menu_pressed_cb (GtkGestureMultiPress *gesture,
+gtk_menu_pressed_cb (GtkGestureClick *gesture,
                      int                   n_press,
                      double                x,
                      double                y,
@@ -2660,11 +2660,11 @@ gtk_menu_pressed_cb (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_menu_released_cb (GtkGestureMultiPress *gesture,
-                      int                   n_press,
-                      double                x,
-                      double                y,
-                      gpointer              user_data)
+gtk_menu_released_cb (GtkGestureClick *gesture,
+                      int              n_press,
+                      double           x,
+                      double           y,
+                      gpointer         user_data)
 {
   GtkMenu *menu = user_data;
   GtkMenuPrivate *priv = menu->priv;
index c8a029a28ccb7f8588e0043ca60b7230d61141e8..224ffe53b1f4cb4b58acbb7cfbdba5cc5c1cba2f 100644 (file)
@@ -27,7 +27,7 @@
 
 #include <gtk/gtkmenu.h>
 #include <gtk/gtkcssnodeprivate.h>
-#include <gtk/gtkgesturemultipress.h>
+#include <gtk/gtkgestureclick.h>
 
 G_BEGIN_DECLS
 
index a543c37ac8ddc69a28ea93ea4a56818f0ea090ab..d141c13f420f22fb50e6ae062ec5331c3b963258 100644 (file)
@@ -76,7 +76,7 @@
 #include "gtkwindow.h"
 #include "gtkwindowprivate.h"
 #include "gtkeventcontrollerkey.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 
 #include "a11y/gtkmenushellaccessible.h"
 
@@ -119,17 +119,17 @@ static gboolean gtk_menu_shell_key_press     (GtkEventControllerKey *key,
                                               GdkModifierType        modifiers,
                                               GtkWidget             *widget);
 static void gtk_menu_shell_root              (GtkWidget         *widget);
-static void multi_press_pressed  (GtkGestureMultiPress *gesture,
+static void click_pressed  (GtkGestureClick *gesture,
                                   gint                  n_press,
                                   gdouble               x,
                                   gdouble               y,
                                   GtkMenuShell         *menu_shell);
-static void multi_press_released (GtkGestureMultiPress *gesture,
+static void click_released (GtkGestureClick *gesture,
                                   gint                  n_press,
                                   gdouble               x,
                                   gdouble               y,
                                   GtkMenuShell         *menu_shell);
-static void multi_press_stopped  (GtkGestureMultiPress *gesture,
+static void click_stopped  (GtkGestureClick *gesture,
                                   GtkMenuShell         *menu_shell);
 
 
@@ -428,15 +428,15 @@ gtk_menu_shell_init (GtkMenuShell *menu_shell)
                     G_CALLBACK (gtk_menu_shell_key_press), widget);
   gtk_widget_add_controller (widget, controller);
 
-  controller = GTK_EVENT_CONTROLLER (gtk_gesture_multi_press_new ());
+  controller = GTK_EVENT_CONTROLLER (gtk_gesture_click_new ());
   gtk_event_controller_set_propagation_limit (controller, GTK_LIMIT_NONE);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (controller), 0);
   g_signal_connect (controller, "pressed",
-                    G_CALLBACK (multi_press_pressed), menu_shell);
+                    G_CALLBACK (click_pressed), menu_shell);
   g_signal_connect (controller, "released",
-                    G_CALLBACK (multi_press_released), menu_shell);
+                    G_CALLBACK (click_released), menu_shell);
   g_signal_connect (controller, "stopped",
-                    G_CALLBACK (multi_press_stopped), menu_shell);
+                    G_CALLBACK (click_stopped), menu_shell);
   gtk_widget_add_controller (widget, controller);
 }
 
@@ -622,7 +622,7 @@ gtk_menu_shell_get_toplevel_shell (GtkMenuShell *menu_shell)
 }
 
 static void
-multi_press_stopped (GtkGestureMultiPress *gesture,
+click_stopped (GtkGestureClick *gesture,
                      GtkMenuShell         *menu_shell)
 {
   GtkMenuShellPrivate *priv = menu_shell->priv;
@@ -647,11 +647,11 @@ multi_press_stopped (GtkGestureMultiPress *gesture,
 }
 
 static void
-multi_press_pressed (GtkGestureMultiPress *gesture,
-                     gint                  n_press,
-                     gdouble               x,
-                     gdouble               y,
-                     GtkMenuShell         *menu_shell)
+click_pressed (GtkGestureClick *gesture,
+               gint             n_press,
+               gdouble          x,
+               gdouble          y,
+               GtkMenuShell    *menu_shell)
 {
   GtkMenuShellPrivate *priv = menu_shell->priv;
   GtkWidget *menu_item;
@@ -723,11 +723,11 @@ multi_press_pressed (GtkGestureMultiPress *gesture,
 }
 
 static void
-multi_press_released (GtkGestureMultiPress *gesture,
-                      gint                  n_press,
-                      gdouble               x,
-                      gdouble               y,
-                      GtkMenuShell         *menu_shell)
+click_released (GtkGestureClick *gesture,
+                gint             n_press,
+                gdouble          x,
+                gdouble          y,
+                GtkMenuShell    *menu_shell)
 {
   GtkMenuShellPrivate *priv = menu_shell->priv;
   GtkMenuShell *parent_shell = GTK_MENU_SHELL (priv->parent_menu_shell);
index f1bf119437e49764cd2700e7fe95dc1820cd43dc..3561bd2762812dd33d7528d692cc7a7d13d4ce71 100644 (file)
@@ -52,7 +52,7 @@
 #include "gtksettings.h"
 #include "gtkstylecontextprivate.h"
 #include "gtkdialogprivate.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 
 #include <glib/gprintf.h>
 
@@ -1342,7 +1342,7 @@ on_popup_menu_for_process_tree_view (GtkWidget *widget,
 }
 
 static void
-multi_press_cb (GtkGesture *gesture,
+click_cb (GtkGesture *gesture,
                 int         n_press,
                 double      x,
                 double      y,
@@ -1470,10 +1470,10 @@ create_show_processes_dialog (GtkMountOperation *op,
                     G_CALLBACK (on_popup_menu_for_process_tree_view),
                     op);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY);
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (multi_press_cb), op);
+                    G_CALLBACK (click_cb), op);
   gtk_widget_add_controller (tree_view, GTK_EVENT_CONTROLLER (gesture));
 
   list_store = gtk_list_store_new (3,
index e29448aaf07ac4744f558f6beda0dc9f09c6136c..a426dc931f1979e34a6254a3ead0b2f9959dc9eb 100644 (file)
@@ -35,7 +35,7 @@
 #include "gtkdnd.h"
 #include "gtkdragdest.h"
 #include "gtkeventcontrollermotion.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgizmoprivate.h"
 #include "gtkiconprivate.h"
 #include "gtkintl.h"
@@ -844,12 +844,12 @@ static void gtk_notebook_buildable_add_child      (GtkBuildable *buildable,
                                                    GObject      *child,
                                                    const gchar  *type);
 
-static void gtk_notebook_gesture_pressed (GtkGestureMultiPress *gesture,
+static void gtk_notebook_gesture_pressed (GtkGestureClick *gesture,
                                           int                   n_press,
                                           double                x,
                                           double                y,
                                           gpointer              user_data);
-static void gtk_notebook_gesture_released (GtkGestureMultiPress *gesture,
+static void gtk_notebook_gesture_released (GtkGestureClick *gesture,
                                            int                   n_press,
                                            double                x,
                                            double                y,
@@ -1356,7 +1356,7 @@ gtk_notebook_init (GtkNotebook *notebook)
   gtk_widget_set_vexpand (priv->stack_widget, TRUE);
   gtk_container_add (GTK_CONTAINER (priv->box), priv->stack_widget);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_CAPTURE);
   g_signal_connect (gesture, "pressed", G_CALLBACK (gtk_notebook_gesture_pressed), notebook);
@@ -2488,7 +2488,7 @@ get_tab_at_pos (GtkNotebook *notebook,
 }
 
 static void
-gtk_notebook_gesture_pressed (GtkGestureMultiPress *gesture,
+gtk_notebook_gesture_pressed (GtkGestureClick *gesture,
                               int                   n_press,
                               double                x,
                               double                y,
@@ -2779,11 +2779,11 @@ gtk_notebook_stop_reorder (GtkNotebook *notebook)
 }
 
 static void
-gtk_notebook_gesture_released (GtkGestureMultiPress *gesture,
-                               int                   n_press,
-                               double                x,
-                               double                y,
-                               gpointer              user_data)
+gtk_notebook_gesture_released (GtkGestureClick *gesture,
+                               int              n_press,
+                               double           x,
+                               double           y,
+                               gpointer         user_data)
 {
   GtkNotebook *notebook = user_data;
   GtkNotebookPrivate *priv = notebook->priv;
index cc74bc167e8f2726020c50d924945ff3613e723a..ddf31467ba536eb915481c19f9a5b1274edc8207 100644 (file)
@@ -26,7 +26,7 @@
 #include "gtkbindings.h"
 #include "gtktextprivate.h"
 #include "gtkeditable.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkbox.h"
 #include "gtkimage.h"
 #include "gtkcheckmenuitem.h"
@@ -475,7 +475,7 @@ gtk_password_entry_set_show_peek_icon (GtkPasswordEntry *entry,
       gtk_widget_set_tooltip_text (priv->peek_icon, _("Show text"));
       gtk_widget_set_parent (priv->peek_icon, GTK_WIDGET (entry));
 
-      press = gtk_gesture_multi_press_new ();
+      press = gtk_gesture_click_new ();
       g_signal_connect_swapped (press, "released",
                                 G_CALLBACK (gtk_password_entry_toggle_peek), entry);
       gtk_widget_add_controller (priv->peek_icon, GTK_EVENT_CONTROLLER (press));
index 3ba8bbcd028b0b55f8ff07041f620c9bb6ceb47e..ddddbe0f499aa8370a3c2f666fe3a9e0b7c78f8f 100644 (file)
@@ -62,7 +62,7 @@
 #include "gtkmodelbutton.h"
 #include "gtkprivate.h"
 #include "gtkeventcontrollerkey.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturedrag.h"
 #include "gtknative.h"
 
@@ -286,12 +286,12 @@ static void  check_unmount_and_eject       (GMount   *mount,
                                             GDrive   *drive,
                                             gboolean *show_unmount,
                                             gboolean *show_eject);
-static void on_row_pressed  (GtkGestureMultiPress *gesture,
+static void on_row_pressed  (GtkGestureClick *gesture,
                              gint                  n_press,
                              gdouble               x,
                              gdouble               y,
                              GtkSidebarRow        *row);
-static void on_row_released (GtkGestureMultiPress *gesture,
+static void on_row_released (GtkGestureClick *gesture,
                              gint                  n_press,
                              gdouble               x,
                              gdouble               y,
@@ -511,7 +511,7 @@ add_place (GtkPlacesSidebar            *sidebar,
   g_signal_connect_swapped (eject_button, "clicked",
                             G_CALLBACK (eject_or_unmount_bookmark), row);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   g_signal_connect (gesture, "pressed",
                     G_CALLBACK (on_row_pressed), row);
@@ -3731,11 +3731,11 @@ on_row_activated (GtkListBox    *list_box,
 }
 
 static void
-on_row_pressed (GtkGestureMultiPress *gesture,
-                gint                  n_press,
-                gdouble               x,
-                gdouble               y,
-                GtkSidebarRow        *row)
+on_row_pressed (GtkGestureClick *gesture,
+                gint             n_press,
+                gdouble          x,
+                gdouble          y,
+                GtkSidebarRow   *row)
 {
   GtkPlacesSidebar *sidebar;
   GtkPlacesSidebarSectionType section_type;
@@ -3758,11 +3758,11 @@ on_row_pressed (GtkGestureMultiPress *gesture,
 }
 
 static void
-on_row_released (GtkGestureMultiPress *gesture,
-                 gint                  n_press,
-                 gdouble               x,
-                 gdouble               y,
-                 GtkSidebarRow        *row)
+on_row_released (GtkGestureClick *gesture,
+                 gint             n_press,
+                 gdouble          x,
+                 gdouble          y,
+                 GtkSidebarRow   *row)
 {
   GtkPlacesSidebar *sidebar;
   GtkPlacesSidebarSectionType section_type;
index 13c384ac5b45d66a2d72e992d7b85667b23e89c2..0748a43a4619a163c9feaba8dbe012e8d4d83046 100644 (file)
@@ -32,7 +32,7 @@
 #include "gtkeventcontrollerscroll.h"
 #include "gtkgesturedrag.h"
 #include "gtkgesturelongpressprivate.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgizmoprivate.h"
 #include "gtkintl.h"
 #include "gtkmarshalers.h"
@@ -162,12 +162,12 @@ static void gtk_range_size_allocate  (GtkWidget      *widget,
                                       int             baseline);
 static void gtk_range_unmap          (GtkWidget        *widget);
 
-static void gtk_range_multipress_gesture_pressed  (GtkGestureMultiPress *gesture,
+static void gtk_range_click_gesture_pressed  (GtkGestureClick *gesture,
                                                    guint                 n_press,
                                                    gdouble               x,
                                                    gdouble               y,
                                                    GtkRange             *range);
-static void gtk_range_multipress_gesture_released (GtkGestureMultiPress *gesture,
+static void gtk_range_click_gesture_released (GtkGestureClick *gesture,
                                                    guint                 n_press,
                                                    gdouble               x,
                                                    gdouble               y,
@@ -558,7 +558,7 @@ gtk_range_init (GtkRange *range)
 
   /* Note: Order is important here.
    * The ::drag-begin handler relies on the state set up by the
-   * multipress ::pressed handler. Gestures are handling events
+   * click ::pressed handler. Gestures are handling events
    * in the oppposite order in which they are added to their
    * widget.
    */
@@ -570,12 +570,12 @@ gtk_range_init (GtkRange *range)
                     G_CALLBACK (gtk_range_drag_gesture_update), range);
   gtk_widget_add_controller (GTK_WIDGET (range), GTK_EVENT_CONTROLLER (priv->drag_gesture));
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (gtk_range_multipress_gesture_pressed), range);
+                    G_CALLBACK (gtk_range_click_gesture_pressed), range);
   g_signal_connect (gesture, "released",
-                    G_CALLBACK (gtk_range_multipress_gesture_released), range);
+                    G_CALLBACK (gtk_range_click_gesture_released), range);
   gtk_widget_add_controller (GTK_WIDGET (range), GTK_EVENT_CONTROLLER (gesture));
   gtk_gesture_group (priv->drag_gesture, gesture);
 
@@ -1874,11 +1874,11 @@ gtk_range_long_press_gesture_pressed (GtkGestureLongPress *gesture,
 }
 
 static void
-gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
-                                      guint                 n_press,
-                                      gdouble               x,
-                                      gdouble               y,
-                                      GtkRange             *range)
+gtk_range_click_gesture_pressed (GtkGestureClick *gesture,
+                                 guint            n_press,
+                                 gdouble          x,
+                                 gdouble          y,
+                                 GtkRange        *range)
 {
   GtkWidget *widget = GTK_WIDGET (range);
   GtkRangePrivate *priv = gtk_range_get_instance_private (range);
@@ -2006,11 +2006,11 @@ gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_range_multipress_gesture_released (GtkGestureMultiPress *gesture,
-                                       guint                 n_press,
-                                       gdouble               x,
-                                       gdouble               y,
-                                       GtkRange             *range)
+gtk_range_click_gesture_released (GtkGestureClick *gesture,
+                                  guint            n_press,
+                                  gdouble          x,
+                                  gdouble          y,
+                                  GtkRange        *range)
 {
   GtkRangePrivate *priv = gtk_range_get_instance_private (range);
 
index c3d86ad8f512ed8b438fc7e2bfd7ec097ab42b60..31319cf06e879d960b6e194f7ef9b6dfdefa9b1f 100644 (file)
@@ -33,7 +33,7 @@
 #include "gtkbindings.h"
 #include "gtkeditable.h"
 #include "gtkbox.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtktextprivate.h"
 #include "gtkimage.h"
 #include "gtkintl.h"
@@ -491,11 +491,11 @@ gtk_search_entry_editable_init (GtkEditableInterface *iface)
 }
 
 static void
-gtk_search_entry_icon_release (GtkGestureMultiPress *press,
-                               int                   n_press,
-                               double                x,
-                               double                y,
-                               GtkSearchEntry       *entry)
+gtk_search_entry_icon_release (GtkGestureClick *press,
+                               int              n_press,
+                               double           x,
+                               double           y,
+                               GtkSearchEntry  *entry)
 {
   GtkSearchEntryPrivate *priv = gtk_search_entry_get_instance_private (entry);
 
@@ -595,7 +595,7 @@ gtk_search_entry_init (GtkSearchEntry *entry)
   gtk_widget_set_parent (priv->icon, GTK_WIDGET (entry));
   gtk_widget_set_child_visible (priv->icon, FALSE);
 
-  press = gtk_gesture_multi_press_new ();
+  press = gtk_gesture_click_new ();
   g_signal_connect (press, "released", G_CALLBACK (gtk_search_entry_icon_release), entry);
   gtk_widget_add_controller (priv->icon, GTK_EVENT_CONTROLLER (press));
 
index 427552c6e983ac2ea4ee64aae3b2462a5138ff97..e4ddfaecb6a0333ed4e5957d1f1129ba346ef438 100644 (file)
@@ -40,7 +40,7 @@
 #include "gtkeventcontrollerkey.h"
 #include "gtkeventcontrollermotion.h"
 #include "gtkeventcontrollerscroll.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgestureswipe.h"
 #include "gtkicontheme.h"
 #include "gtkintl.h"
@@ -773,11 +773,11 @@ start_spinning (GtkSpinButton *spin,
 }
 
 static void
-button_pressed_cb (GtkGestureMultiPress *gesture,
-                   int                   n_pressses,
-                   double                x,
-                   double                y,
-                   gpointer              user_data)
+button_pressed_cb (GtkGestureClick *gesture,
+                   int              n_pressses,
+                   double           x,
+                   double           y,
+                   gpointer         user_data)
 {
   GtkSpinButton *spin_button = user_data;
   GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (spin_button);
@@ -802,11 +802,11 @@ button_pressed_cb (GtkGestureMultiPress *gesture,
 }
 
 static void
-button_released_cb (GtkGestureMultiPress *gesture,
-                    int                   n_pressses,
-                    double                x,
-                    double                y,
-                    gpointer              user_data)
+button_released_cb (GtkGestureClick *gesture,
+                    int              n_pressses,
+                    double           x,
+                    double           y,
+                    gpointer         user_data)
 {
   GtkSpinButton *spin_button = user_data;
   GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (spin_button);
@@ -909,7 +909,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
   gtk_style_context_add_class (gtk_widget_get_style_context (priv->down_button), "down");
   gtk_container_add (GTK_CONTAINER (priv->box), priv->down_button);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
@@ -926,7 +926,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
   gtk_style_context_add_class (gtk_widget_get_style_context (priv->up_button), "up");
   gtk_container_add (GTK_CONTAINER (priv->box), priv->up_button);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
index 09f6d235d2529bbd6c865f8aa8373597ba5f5ae5..1d3dce8106e9b39f107030d49dabbe7141e3039f 100644 (file)
@@ -55,7 +55,7 @@
 
 #include "gtkactionable.h"
 #include "gtkactionhelperprivate.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturepan.h"
 #include "gtkgesturesingle.h"
 #include "gtkgizmoprivate.h"
@@ -81,7 +81,7 @@ struct _GtkSwitchPrivate
   GtkActionHelper *action_helper;
 
   GtkGesture *pan_gesture;
-  GtkGesture *multipress_gesture;
+  GtkGesture *click_gesture;
 
   double handle_pos;
   guint tick_id;
@@ -206,11 +206,11 @@ gtk_switch_begin_toggle_animation (GtkSwitch *sw)
 }
 
 static void
-gtk_switch_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
-                                       gint                  n_press,
-                                       gdouble               x,
-                                       gdouble               y,
-                                       GtkSwitch            *sw)
+gtk_switch_click_gesture_pressed (GtkGestureClick *gesture,
+                                  gint             n_press,
+                                  gdouble          x,
+                                  gdouble          y,
+                                  GtkSwitch       *sw)
 {
   GtkSwitchPrivate *priv = gtk_switch_get_instance_private (sw);
   graphene_rect_t switch_bounds;
@@ -229,11 +229,11 @@ gtk_switch_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
 }
 
 static void
-gtk_switch_multipress_gesture_released (GtkGestureMultiPress *gesture,
-                                        gint                  n_press,
-                                        gdouble               x,
-                                        gdouble               y,
-                                        GtkSwitch            *sw)
+gtk_switch_click_gesture_released (GtkGestureClick *gesture,
+                                   gint             n_press,
+                                   gdouble          x,
+                                   gdouble          y,
+                                   GtkSwitch       *sw)
 {
   GdkEventSequence *sequence;
 
@@ -291,7 +291,7 @@ gtk_switch_pan_gesture_drag_end (GtkGestureDrag *gesture,
        */
       active = priv->handle_pos >= 0.5;
     }
-  else if (!gtk_gesture_handles_sequence (priv->multipress_gesture, sequence))
+  else if (!gtk_gesture_handles_sequence (priv->click_gesture, sequence))
     active = priv->is_active;
   else
     return;
@@ -639,17 +639,17 @@ gtk_switch_init (GtkSwitch *self)
 
   gtk_widget_set_can_focus (GTK_WIDGET (self), TRUE);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE);
   gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (gesture), TRUE);
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (gtk_switch_multipress_gesture_pressed), self);
+                    G_CALLBACK (gtk_switch_click_gesture_pressed), self);
   g_signal_connect (gesture, "released",
-                    G_CALLBACK (gtk_switch_multipress_gesture_released), self);
+                    G_CALLBACK (gtk_switch_click_gesture_released), self);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
                                               GTK_PHASE_BUBBLE);
   gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture));
-  priv->multipress_gesture = gesture;
+  priv->click_gesture = gesture;
 
   gesture = gtk_gesture_pan_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE);
index ec2c38fe981e1db003267df91b3bc811263e2a86..ecff9f69da2fafec883f74187ed7a35f0fac8320 100644 (file)
@@ -38,7 +38,7 @@
 #include "gtkeventcontrollerkey.h"
 #include "gtkeventcontrollermotion.h"
 #include "gtkgesturedrag.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturesingle.h"
 #include "gtkimageprivate.h"
 #include "gtkimcontextsimple.h"
@@ -443,7 +443,7 @@ static void     gtk_text_motion_controller_motion   (GtkEventControllerMotion *c
                                                      double                    x,
                                                      double                    y,
                                                      GtkText                  *self);
-static void     gtk_text_multipress_gesture_pressed (GtkGestureMultiPress     *gesture,
+static void     gtk_text_click_gesture_pressed (GtkGestureClick     *gesture,
                                                      int                       n_press,
                                                      double                    x,
                                                      double                    y,
@@ -1709,9 +1709,9 @@ gtk_text_init (GtkText *self)
   gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (priv->drag_gesture), TRUE);
   gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (priv->drag_gesture));
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (gtk_text_multipress_gesture_pressed), self);
+                    G_CALLBACK (gtk_text_click_gesture_pressed), self);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   gtk_gesture_single_set_exclusive (GTK_GESTURE_SINGLE (gesture), TRUE);
   gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture));
@@ -2449,11 +2449,11 @@ gesture_get_current_point_in_layout (GtkGestureSingle *gesture,
 }
 
 static void
-gtk_text_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
-                                     int                   n_press,
-                                     double                widget_x,
-                                     double                widget_y,
-                                     GtkText              *self)
+gtk_text_click_gesture_pressed (GtkGestureClick *gesture,
+                                int              n_press,
+                                double           widget_x,
+                                double           widget_y,
+                                GtkText         *self)
 {
   GtkWidget *widget = GTK_WIDGET (self);
   GtkTextPrivate *priv = gtk_text_get_instance_private (self);
index 6ce040676fb8dc86b75fc08d4296027f9d91ea88..a824dc80d6d602b96433bf0df2a7c27b25de7d89 100644 (file)
@@ -378,7 +378,7 @@ static void gtk_text_view_direction_changed    (GtkWidget        *widget,
 static void gtk_text_view_state_flags_changed  (GtkWidget        *widget,
                                                GtkStateFlags     previous_state);
 
-static void gtk_text_view_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
+static void gtk_text_view_click_gesture_pressed (GtkGestureClick *gesture,
                                                       gint                  n_press,
                                                       gdouble               x,
                                                       gdouble               y,
@@ -1669,10 +1669,10 @@ gtk_text_view_init (GtkTextView *text_view)
 
   priv->text_window = text_window_new (GTK_TEXT_WINDOW_TEXT, widget);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (gtk_text_view_multipress_gesture_pressed),
+                    G_CALLBACK (gtk_text_view_click_gesture_pressed),
                     widget);
   gtk_widget_add_controller (widget, GTK_EVENT_CONTROLLER (gesture));
 
@@ -5075,11 +5075,11 @@ get_iter_from_gesture (GtkTextView *text_view,
 }
 
 static void
-gtk_text_view_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
-                                          gint                  n_press,
-                                          gdouble               x,
-                                          gdouble               y,
-                                          GtkTextView          *text_view)
+gtk_text_view_click_gesture_pressed (GtkGestureClick *gesture,
+                                     gint             n_press,
+                                     gdouble          x,
+                                     gdouble          y,
+                                     GtkTextView     *text_view)
 {
   GdkEventSequence *sequence;
   GtkTextViewPrivate *priv;
index 5d031475eaf158991291cfc16f8d1eaec9ab07cb..5c2574fde888df7c9a243db014bbc5442a8bb319 100644 (file)
@@ -58,7 +58,7 @@
 #include "gtkwidgetpath.h"
 #include "gtkwidgetprivate.h"
 #include "gtkwindowprivate.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkbuttonprivate.h"
 
 
@@ -245,7 +245,7 @@ static void       gtk_toolbar_measure              (GtkWidget      *widget,
                                                     int            *natural,
                                                     int            *minimum_baseline,
                                                     int            *natural_baseline);
-static void       gtk_toolbar_pressed_cb           (GtkGestureMultiPress *gesture,
+static void       gtk_toolbar_pressed_cb           (GtkGestureClick *gesture,
                                                     int                   n_press,
                                                     double                x,
                                                     double                y,
@@ -575,7 +575,7 @@ gtk_toolbar_init (GtkToolbar *toolbar)
   
   priv->timer = g_timer_new ();
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), FALSE);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture), GTK_PHASE_BUBBLE);
@@ -2206,11 +2206,11 @@ gtk_toolbar_arrow_button_press (GtkGesture     *gesture,
 
 
 static void
-gtk_toolbar_pressed_cb (GtkGestureMultiPress *gesture,
-                        int                   n_press,
-                        double                x,
-                        double                y,
-                        gpointer              user_data)
+gtk_toolbar_pressed_cb (GtkGestureClick *gesture,
+                        int              n_press,
+                        double           x,
+                        double           y,
+                        gpointer         user_data)
 {
   GtkToolbar *toolbar = user_data;
   GdkEventSequence *sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
index 96fbaa811baac00fefb4c8095bf93e0379286ae1..a942cef29ba67d5b0a271fc514ad5b160b9c452a 100644 (file)
@@ -40,7 +40,7 @@
 #include "gtkeventcontrollerscroll.h"
 #include "gtkframe.h"
 #include "gtkgesturedrag.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgesturesingle.h"
 #include "gtkintl.h"
 #include "gtklabel.h"
@@ -503,7 +503,7 @@ struct _GtkTreeViewPrivate
   GDestroyNotify row_separator_destroy;
 
   /* Gestures */
-  GtkGesture *multipress_gesture;
+  GtkGesture *click_gesture;
   GtkGesture *drag_gesture; /* Rubberbanding, row DnD */
   GtkGesture *column_drag_gesture; /* Column reordering, resizing */
 
@@ -927,18 +927,18 @@ static void     remove_scroll_timeout                (GtkTreeView *tree_view);
 static void     grab_focus_and_unset_draw_keyfocus   (GtkTreeView *tree_view);
 
 /* Gestures */
-static void gtk_tree_view_column_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
+static void gtk_tree_view_column_click_gesture_pressed (GtkGestureClick *gesture,
                                                              gint                  n_press,
                                                              gdouble               x,
                                                              gdouble               y,
                                                              GtkTreeView          *tree_view);
 
-static void gtk_tree_view_multipress_gesture_pressed        (GtkGestureMultiPress *gesture,
+static void gtk_tree_view_click_gesture_pressed        (GtkGestureClick *gesture,
                                                              gint                  n_press,
                                                              gdouble               x,
                                                              gdouble               y,
                                                              GtkTreeView          *tree_view);
-static void gtk_tree_view_multipress_gesture_released       (GtkGestureMultiPress *gesture,
+static void gtk_tree_view_click_gesture_released       (GtkGestureClick *gesture,
                                                              gint                  n_press,
                                                              gdouble               x,
                                                              gdouble               y,
@@ -1763,17 +1763,17 @@ gtk_tree_view_init (GtkTreeView *tree_view)
   gtk_css_node_set_state (priv->header_node, gtk_css_node_get_state (widget_node));
   g_object_unref (priv->header_node);
 
-  priv->multipress_gesture = gtk_gesture_multi_press_new ();
-  gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->multipress_gesture), 0);
-  g_signal_connect (priv->multipress_gesture, "pressed",
-                    G_CALLBACK (gtk_tree_view_multipress_gesture_pressed), tree_view);
-  g_signal_connect (priv->multipress_gesture, "released",
-                    G_CALLBACK (gtk_tree_view_multipress_gesture_released), tree_view);
-  gtk_widget_add_controller (GTK_WIDGET (tree_view), GTK_EVENT_CONTROLLER (priv->multipress_gesture));
+  priv->click_gesture = gtk_gesture_click_new ();
+  gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->click_gesture), 0);
+  g_signal_connect (priv->click_gesture, "pressed",
+                    G_CALLBACK (gtk_tree_view_click_gesture_pressed), tree_view);
+  g_signal_connect (priv->click_gesture, "released",
+                    G_CALLBACK (gtk_tree_view_click_gesture_released), tree_view);
+  gtk_widget_add_controller (GTK_WIDGET (tree_view), GTK_EVENT_CONTROLLER (priv->click_gesture));
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed",
-                    G_CALLBACK (gtk_tree_view_column_multipress_gesture_pressed), tree_view);
+                    G_CALLBACK (gtk_tree_view_column_click_gesture_pressed), tree_view);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
                                               GTK_PHASE_CAPTURE);
   gtk_widget_add_controller (GTK_WIDGET (tree_view), GTK_EVENT_CONTROLLER (gesture));
@@ -2796,7 +2796,7 @@ get_current_selection_modifiers (GtkWidget *widget,
 }
 
 static void
-gtk_tree_view_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
+gtk_tree_view_click_gesture_pressed (GtkGestureClick *gesture,
                                           gint                  n_press,
                                           gdouble               x,
                                           gdouble               y,
@@ -3098,7 +3098,7 @@ gtk_tree_view_drag_gesture_begin (GtkGestureDrag *gesture,
 }
 
 static void
-gtk_tree_view_column_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
+gtk_tree_view_column_click_gesture_pressed (GtkGestureClick *gesture,
                                                  gint                  n_press,
                                                  gdouble               x,
                                                  gdouble               y,
@@ -3298,11 +3298,11 @@ gtk_tree_view_drag_gesture_end (GtkGestureDrag *gesture,
 }
 
 static void
-gtk_tree_view_multipress_gesture_released (GtkGestureMultiPress *gesture,
-                                           gint                  n_press,
-                                           gdouble               x,
-                                           gdouble               y,
-                                           GtkTreeView          *tree_view)
+gtk_tree_view_click_gesture_released (GtkGestureClick *gesture,
+                                      gint             n_press,
+                                      gdouble          x,
+                                      gdouble          y,
+                                      GtkTreeView     *tree_view)
 {
   gboolean modify, extend;
   guint button;
@@ -4157,7 +4157,7 @@ gtk_tree_view_motion_controller_motion (GtkEventControllerMotion *controller,
 
       /* If we are currently pressing down a button, we don't want to prelight anything else. */
       if (gtk_gesture_is_active (tree_view->priv->drag_gesture) ||
-          gtk_gesture_is_active (tree_view->priv->multipress_gesture))
+          gtk_gesture_is_active (tree_view->priv->click_gesture))
         node = NULL;
 
       gtk_tree_view_convert_widget_to_bin_window_coords (tree_view, x, y,
@@ -7043,8 +7043,8 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView *tree_view)
 
   button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (tree_view->priv->drag_gesture));
 
-  /* Deny the multipress gesture */
-  gtk_gesture_set_state (GTK_GESTURE (tree_view->priv->multipress_gesture),
+  /* Deny the click gesture */
+  gtk_gesture_set_state (GTK_GESTURE (tree_view->priv->click_gesture),
                          GTK_EVENT_SEQUENCE_DENIED);
 
   gtk_tree_view_convert_widget_to_bin_window_coords (tree_view, start_x, start_y,
@@ -10174,7 +10174,7 @@ gtk_tree_view_ensure_interactive_directory (GtkTreeView *tree_view)
                    tree_view);
   gtk_widget_add_controller (tree_view->priv->search_window, controller);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed",
                     G_CALLBACK (gtk_tree_view_search_pressed_cb), tree_view);
   gtk_widget_add_controller (tree_view->priv->search_window, GTK_EVENT_CONTROLLER (gesture));
@@ -11783,7 +11783,7 @@ gtk_tree_view_real_collapse_row (GtkTreeView   *tree_view,
   selection_changed = gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children);
   
   /* Stop a pending double click */
-  gtk_event_controller_reset (GTK_EVENT_CONTROLLER (tree_view->priv->multipress_gesture));
+  gtk_event_controller_reset (GTK_EVENT_CONTROLLER (tree_view->priv->click_gesture));
 
   _gtk_tree_view_accessible_remove (tree_view, node->children, NULL);
   _gtk_tree_view_accessible_remove_state (tree_view,
index eae7baaec05cdd65ffc9954d820584abb6709ea9..fffa1bcdc346287c4d8ce408466a2a1f2742e616 100644 (file)
@@ -45,7 +45,7 @@
 #include "gtkeventcontrollerkey.h"
 #include "gtkeventcontrollermotion.h"
 #include "gtkgesturedrag.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkgestureprivate.h"
 #include "gtkheaderbarprivate.h"
 #include "gtkicontheme.h"
@@ -271,7 +271,7 @@ typedef struct
 
   GdkSurfaceTypeHint type_hint;
 
-  GtkGesture *multipress_gesture;
+  GtkGesture *click_gesture;
   GtkGesture *drag_gesture;
   GtkGesture *bubble_drag_gesture;
   GtkEventController *key_controller;
@@ -1361,11 +1361,11 @@ gtk_window_titlebar_action (GtkWindow      *window,
 }
 
 static void
-multipress_gesture_pressed_cb (GtkGestureMultiPress *gesture,
-                               gint                  n_press,
-                               gdouble               x,
-                               gdouble               y,
-                               GtkWindow            *window)
+click_gesture_pressed_cb (GtkGestureClick *gesture,
+                          gint             n_press,
+                          gdouble          x,
+                          gdouble          y,
+                          GtkWindow       *window)
 {
   GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
   GtkWidget *event_widget, *widget;
@@ -1576,7 +1576,7 @@ drag_gesture_update_cb (GtkGestureDrag *gesture,
                                              gtk_get_current_event_time ());
 
       gtk_event_controller_reset (GTK_EVENT_CONTROLLER (gesture));
-      gtk_event_controller_reset (GTK_EVENT_CONTROLLER (priv->multipress_gesture));
+      gtk_event_controller_reset (GTK_EVENT_CONTROLLER (priv->click_gesture));
     }
 }
 
@@ -1938,13 +1938,13 @@ gtk_window_constructed (GObject *object)
 
   if (priv->type == GTK_WINDOW_TOPLEVEL)
     {
-      priv->multipress_gesture = gtk_gesture_multi_press_new ();
-      gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->multipress_gesture), 0);
-      gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->multipress_gesture),
+      priv->click_gesture = gtk_gesture_click_new ();
+      gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->click_gesture), 0);
+      gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->click_gesture),
                                                   GTK_PHASE_BUBBLE);
-      g_signal_connect (priv->multipress_gesture, "pressed",
-                        G_CALLBACK (multipress_gesture_pressed_cb), object);
-      gtk_widget_add_controller (GTK_WIDGET (object), GTK_EVENT_CONTROLLER (priv->multipress_gesture));
+      g_signal_connect (priv->click_gesture, "pressed",
+                        G_CALLBACK (click_gesture_pressed_cb), object);
+      gtk_widget_add_controller (GTK_WIDGET (object), GTK_EVENT_CONTROLLER (priv->click_gesture));
 
       priv->drag_gesture = create_drag_gesture (window);
       gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->drag_gesture),
index 6fe5c74fc02a42a935b05b756b7c4498c28548a3..abb88f07bb0515622e0a0e3e4ec39eee51494feb 100644 (file)
@@ -32,7 +32,6 @@
 #include "gtkstack.h"
 #include "gtkmain.h"
 #include "gtkwidgetprivate.h"
-#include "gtkgesturemultipress.h"
 #include "gtkeventcontrollermotion.h"
 #include "gtkeventcontrollerkey.h"
 #include "gtknative.h"
index 0e0236c0eb1b5ae5c4d8c110f0a44567a0e26796..69282bd7cea5b14046fad425b6d97b444ae06cf3 100644 (file)
@@ -42,7 +42,7 @@
 #include "gtklistbox.h"
 #include "gtksizegroup.h"
 #include "gtkroot.h"
-#include "gtkgesturemultipress.h"
+#include "gtkgestureclick.h"
 #include "gtkstylecontext.h"
 
 enum
@@ -124,7 +124,7 @@ apply_sort (GtkInspectorPropList *pl,
 }
 
 static void
-sort_changed (GtkGestureMultiPress *gesture,
+sort_changed (GtkGestureClick      *gesture,
               int                   n_press,
               double                x,
               double                y,
index 290bf15bd46c59c58f1832949d06cc7139eee0de..f1898cf5b502bc606188a82b2bd34c71bd2be45f 100644 (file)
@@ -17,7 +17,7 @@
               <object class="GtkBox" id="name_heading">
                 <property name="hexpand">0</property>
                 <child>
-                  <object class="GtkGestureMultiPress">
+                  <object class="GtkGestureClick">
                     <signal name="pressed" handler="sort_changed" swapped="no"/>
 
                   </object>
@@ -48,7 +48,7 @@
               <object class="GtkBox" id="origin_heading">
                 <property name="hexpand">0</property>
                 <child>
-                  <object class="GtkGestureMultiPress">
+                  <object class="GtkGestureClick">
                     <signal name="pressed" handler="sort_changed" swapped="no"/>
 
                   </object>
index bfb72d0db48a8c0fd23213ad3143b7fea1b295a4..5001ca8a12f77c8a571b826c629cec156cd7adcf 100644 (file)
@@ -238,7 +238,7 @@ gtk_public_sources = files([
   'gtkgesture.c',
   'gtkgesturedrag.c',
   'gtkgesturelongpress.c',
-  'gtkgesturemultipress.c',
+  'gtkgestureclick.c',
   'gtkgesturepan.c',
   'gtkgesturerotate.c',
   'gtkgesturesingle.c',
@@ -496,7 +496,7 @@ gtk_public_headers = files([
   'gtkgesture.h',
   'gtkgesturedrag.h',
   'gtkgesturelongpress.h',
-  'gtkgesturemultipress.h',
+  'gtkgestureclick.h',
   'gtkgesturepan.h',
   'gtkgesturerotate.h',
   'gtkgesturesingle.h',
index c457a4ebd50e03f2ab3f685b1defa009538aa5ff..f4eda2ed10676cc79b96374e2e54f428ada9865c 100644 (file)
                                 <property name="right-margin">8</property>
                                 <property name="cursor-visible">0</property>
                                 <child>
-                                  <object class="GtkGestureMultiPress">
+                                  <object class="GtkGestureClick">
                                     <signal name="released" handler="text_view_released" swapped="no"/>
                                   </object>
                                 </child>
                                 <property name="right-margin">8</property>
                                 <property name="cursor-visible">0</property>
                                 <child>
-                                  <object class="GtkGestureMultiPress">
+                                  <object class="GtkGestureClick">
                                     <signal name="released" handler="text_view_released" swapped="no"/>
                                   </object>
                                 </child>
index e32d977526aa92170e1ab6f901b2401898268385..aab66760826a2fcff58d415568cc5ba7f424ee92 100644 (file)
@@ -45,7 +45,7 @@
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="GtkGestureMultiPress">
+                                  <object class="GtkGestureClick">
                                     <property name="button">3</property>
                                     <signal name="pressed" handler="pressed_cb"/>
                                   </object>
@@ -69,7 +69,7 @@
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="GtkGestureMultiPress">
+                                  <object class="GtkGestureClick">
                                     <property name="button">3</property>
                                     <signal name="pressed" handler="pressed_cb"/>
                                   </object>
@@ -93,7 +93,7 @@
                                   </object>
                                 </child>
                                 <child>
-                                  <object class="GtkGestureMultiPress">
+                                  <object class="GtkGestureClick">
                                     <property name="button">3</property>
                                     <signal name="pressed" handler="pressed_cb"/>
                                   </object>
index 2282ee9365251ae1bdff39a2434900cad8d7f761..07c64ffd4fa9b9123d73ccc6aff7ee232ca6a684 100644 (file)
                                               </object>
                                             </child>
                                             <child>
-                                              <object class="GtkGestureMultiPress">
+                                              <object class="GtkGestureClick">
                                                 <property name="button">3</property>
-                                                <signal name="pressed" handler="multi_press_cb" swapped="no"/>
+                                                <signal name="pressed" handler="click_cb" swapped="no"/>
                                               </object>
                                             </child>
                                             <child>
index e9f9e8908a9d4138bfadc003dc90cc0bc1d66d98..31b1473c8de9a8eed2eafaa226186be931d86a00 100644 (file)
@@ -82,7 +82,7 @@
       </object>
     </child>
     <child>
-      <object class="GtkGestureMultiPress">
+      <object class="GtkGestureClick">
         <property name="button">3</property>
         <signal name="pressed" handler="pressed_cb" swapped="no"/>
       </object>
index 07c9fb6ebca1a8f8265d2d4de13ebf9eac77d1e1..83f81dbaab8ccb8d3d21e0f2c37621382aa00f75 100644 (file)
@@ -308,7 +308,7 @@ main (int argc, char **argv)
   gtk_widget_set_tooltip_text (image, "Click me");
 
   GtkGesture *gesture;
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed", G_CALLBACK (icon_pressed_cb), NULL);
   gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (gesture));
   gtk_container_add (GTK_CONTAINER (box), image);
index 3d946e1dde029e4453abcfc945894bdbbd524ba2..a2f85666ac7e960e91957fbd82a87a2ae215f2af 100644 (file)
@@ -32,11 +32,11 @@ test_widget (const gchar *label, const gchar *color)
 static GtkOrientation o;
 
 static void
-toggle_orientation (GtkGestureMultiPress *gesture,
-                    guint                 n_press,
-                    gdouble               x,
-                    gdouble               y,
-                    GtkGrid              *grid)
+toggle_orientation (GtkGestureClick *gesture,
+                    guint            n_press,
+                    gdouble          x,
+                    gdouble          y,
+                    GtkGrid         *grid)
 {
   o = 1 - o;
   gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), o);
@@ -55,7 +55,7 @@ simple_grid (void)
   grid = gtk_grid_new ();
   gtk_container_add (GTK_CONTAINER (window), grid);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed", G_CALLBACK (toggle_orientation), grid);
   gtk_widget_add_controller (window, GTK_EVENT_CONTROLLER (gesture));
 
index 20b3ba3d2494bf1ea2a318369a703f5b08b9da2a..8c02ebfa1a1f2bb6b80f101f3fd8b1d64956b7b3 100644 (file)
@@ -3320,7 +3320,7 @@ create_cursors (GtkWidget *widget)
       gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (darea), 80);
       gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (darea), cursor_draw, NULL, NULL);
       gtk_container_add (GTK_CONTAINER (frame), darea);
-      gesture = gtk_gesture_multi_press_new ();
+      gesture = gtk_gesture_click_new ();
       gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), 0);
       g_signal_connect (gesture, "pressed", G_CALLBACK (cursor_pressed_cb), entry);
       gtk_widget_add_controller (darea, GTK_EVENT_CONTROLLER (gesture));
index 87250d57a0d3baf78155c1fe8a4544073914d62d..3645dc2858edc5cee39cc8d1fac3c26dfa94140e 100644 (file)
@@ -356,11 +356,11 @@ do_popup_menu (GtkWidget   *icon_list,
 }
 
 static void
-press_handler (GtkGestureMultiPress *gesture,
-               guint                 n_press,
-               gdouble               x,
-               gdouble               y,
-               GtkWidget            *widget)
+press_handler (GtkGestureClick *gesture,
+               guint            n_press,
+               gdouble          x,
+               gdouble          y,
+               GtkWidget       *widget)
 {
   GtkTreePath *path = NULL;
 
@@ -434,7 +434,7 @@ main (gint argc, gchar **argv)
   tvc = gtk_tree_view_column_new ();
   gtk_tree_view_append_column (GTK_TREE_VIEW (tv), tvc);
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture),
                                  GDK_BUTTON_SECONDARY);
   g_signal_connect (gesture, "pressed",
index 58e433ae2a47e2670f6468f544f9cb80d9654743..0b47b28a333891b8a8fc9626f5daa33e7cd7a39d 100644 (file)
@@ -249,7 +249,7 @@ main (gint argc, gchar **argv)
 
   tree_model = create_model ();
   tree_view = gtk_tree_view_new_with_model (tree_model);
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed", G_CALLBACK (pressed_cb), tree_view);
   gtk_widget_add_controller (tree_view, GTK_EVENT_CONTROLLER (gesture));
   gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_view), TRUE);
index 00ea616bc03f354ddfb4359ba89e641fc41f2ee7..39944a26b761ec79e57f810610edf16c686d2147 100644 (file)
@@ -53,11 +53,11 @@ clicked_icon (GtkTreeView  *tv,
 }
 
 static void
-release_event (GtkGestureMultiPress *gesture,
-               guint                 n_press,
-               gdouble               x,
-               gdouble               y,
-               GtkTreeView          *tv)
+release_event (GtkGestureClick *gesture,
+               guint            n_press,
+               gdouble          x,
+               gdouble          y,
+               GtkTreeView     *tv)
 {
   GtkTreePath *path;
   gint tx, ty;
@@ -129,7 +129,7 @@ int main (int argc, char *argv[])
 
   gtk_tree_view_set_model (GTK_TREE_VIEW (tv), GTK_TREE_MODEL (store));
 
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (gesture),
                                               GTK_PHASE_CAPTURE);
   g_signal_connect (gesture, "released",
index fdae5d19fc6f3e30cd646a3649df308e52d5011a..baa49952ac9b3df38501310f2224b103fa8d7541 100644 (file)
@@ -1,7 +1,7 @@
 #include <gtk/gtk.h>
 
 static void
-start_resize (GtkGestureMultiPress *gesture,
+start_resize (GtkGestureClick *gesture,
               int n_press,
               double x,
               double y,
@@ -39,7 +39,7 @@ resize_button (GdkSurfaceEdge edge)
   button = gtk_image_new_from_icon_name ("view-fullscreen-symbolic");
   gtk_widget_set_hexpand (button, TRUE);
   gtk_widget_set_vexpand (button, TRUE);
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed", G_CALLBACK (start_resize), GINT_TO_POINTER (edge));
   gtk_widget_add_controller (button, GTK_EVENT_CONTROLLER (gesture));
 
@@ -47,7 +47,7 @@ resize_button (GdkSurfaceEdge edge)
 }
 
 static void
-start_move (GtkGestureMultiPress *gesture,
+start_move (GtkGestureClick *gesture,
             int n_press,
             double x,
             double y,
@@ -83,7 +83,7 @@ move_button (void)
   button = gtk_image_new_from_icon_name ("view-grid-symbolic");
   gtk_widget_set_hexpand (button, TRUE);
   gtk_widget_set_vexpand (button, TRUE);
-  gesture = gtk_gesture_multi_press_new ();
+  gesture = gtk_gesture_click_new ();
   g_signal_connect (gesture, "pressed", G_CALLBACK (start_move), NULL);
   gtk_widget_add_controller (button, GTK_EVENT_CONTROLLER (gesture));
 
index 1f80eeb7a0ca9dc15edb225681119b7e0f8f29d0..ba7327ccf792996e1d9cd6c2b402ed0b25259729 100644 (file)
@@ -341,7 +341,7 @@ add_gesture (GtkWidget *w, const gchar *name, GtkPropagationPhase phase, GString
   data->str = str;
   data->state = state;
 
-  g = gtk_gesture_multi_press_new ();
+  g = gtk_gesture_click_new ();
   gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (g), FALSE);
   gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (g), 1);
   gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (g), phase);